[DB/MySQL] 기본 명령어3 | ORDER BY, GROUP BY, DISTINCT, LIMIT
·
DB
ORDER BY파이썬 sort / sorted와 똑같음.오름차순이 default이고 내림 차순으로 하려면 뒤에 DESC(Descending)을 붙여주면 된다.SELECT *FROM cityORDER BY Population;SELECT *FROM cityORDER BY CountryCode ASC, Population DESC;# USA의 인구수 오름차순 출력SELECT *FROM cityWHERE CountryCode = 'USA'ORDER BY Population;GROUP BY말 그대로 그룹으로 묶어줌.집계함수(Aggregation : AVG, MIN, MAX, COUNT, STDEV(표준편차), VARIANCE(분산))과 함께 사용 CountryCode 별로 인구수의 평균 볼건데,, Country..
[DB/MySQL] 기본 명령어2 | BEETWEEN, IN, LIKE, ALY, ALL
·
DB
BETWEEN 숫자로 구성된 연속적인 데이터 BETWEEN, ANDSELECT *FROM cityWHERE Population 7000000 AND 8000000IN()이산값 조건SELECT *FROM cityWHERE Name IN('Seoul', 'Pusan')LIKE문자열의 내용 검색 (%랑 _ 사용)KOR 기억안남.. KO 뒤에 한 글자 머였더라..? 할 때 SELECT *FROM cityWHERE CountryCode LIKE 'KO_'Tel로 시작하는 .. 도시 뭐더라..? 할 때SELECT *FROM cityWHERE Name LIKE 'tel %' ANY / SOME서브 쿼리의 여러가지 조건 중 하나만 만족해도 출력SELECT *FROM cityWHERE Population > ANY # ..
[백준/6186] Best Grass | bfs, dfs
·
PS/BOJ&Programmers
dfs : 최대한 깊게 방문하지 않은 노드들에 쭉 방문하다가, 더이상 진행할 수 있는 인접정점이 없으면 되돌아감 - 재귀bfs : 한 노드에서 인접노드까지 방문한 적이 없는 모든 노드를 queue에 삽입. que는 FIFO 방식이라서 순차적인 구현 DFSfrom collections import dequer,c = map(int, input().split())pasture = [list(input()) for _ in range(r)]visit = [[0]*c for _ in range(r)]d = [(0,1),(0,-1),(1,0),(-1,0)]cnt = 0def dfs(x, y) : visit[x][y] = 1 for dx, dy in d : nx,ny = x+dx, y+d..
[알고리즘] 이진탐색 Lower/Upper Bound | Python bisect
·
PS/Algorithm
개요이진탐색을 하는데 만약 배열에 target 값이 여러 개 존재한다면, 정확한 위치의 값을 도출하는 데에 어려움을 겪을 것이다.이를 해결하기 위한 알고리즘이 Upper Bound와 Lower Bound이다. Python에서는 bisect라는 도구를 제공한다. Lower Boundtarget 이상의 값이 최초로 나오는 위치다. 즉, target보다 같거나 큰 원소 중 가장 작은 값의 위치다. 예를 들어서 아래와 같이 정렬된 배열이 존재한다고 가정하자.15551011100 이 배열의 lower_bound(5) = 5다. 또한 lower_bound(4) = 5다.가장 작은 값을 구하기 위해서 min_idx 변수를 활용하여 초기값으로 답이 될 수 없는 최댓값을 넣어놓고 문제를 해결한다. left=0right=..
[백준/8989] 시계 | 시침, 분침의 각도
·
PS/BOJ&Programmers
https://www.acmicpc.net/problem/8989 8989번: 시계기원이의 방에는 시침과 분침으로 이루어진 아날로그 시계가 있다. 기원이는 시침과 분침이 형성하는 각도 중 작은 각도를 측정하는 것이 취미이며, 이 각도는 0보다 크거나 같고 180보다 작거나www.acmicpc.net 알고리즘신선하고 재밌는 문제다. 일단 이 문제를 풀기 위해서 그림을 그렸는데, 그리고 나서 알게된 사실은  분침은 1분당 6도를, 시침은 1시간당 30도에 1/2*m을 한 각도를 갖는 것이다.사실 처음에는 12시 ~ 3시까지 90도니까 3등분을 하면 한시간 당 30도를 갖겠지?!라고 생각하고 풀었는데, 시침은 1분 동안 0.5도씩 움직이기 때문에, 이 또한 고려해주어야 한다!!  따라서, 시침과 분침의 각도를..
[백준/2852] NBA 농구
·
PS/BOJ&Programmers
알고리즘게임 라운드별로 골 넣은 시간과 해당 팀이 주어지고, 각 팀이 몇 분동안 이기고 있는지 출력하는 문제다.게임 진행 상황에 따라서 각 팀이 이기고 있는 시간(출력물)이 바뀌기 때문에 이를 구현해야 한다. 1. 골이 들어갈 때 마다 입력을 해주는 거기 때문에 입력되는 팀 번호의 개수를 통해서 각 팀이 이기고 있는지 지고 있는지 판단한다.2. 현재 게임 득점 시간이 다음 게임 득점 시간에 영향을 주기 때문에 이전 게임의 득점 시간을 반복문의 마지막에 저장한다.3. 주어진 48분 동안 득점을 한 시간이 주어지기 때문에, (주어진 시간 - 득점 시간) 연산으로 이기고 있는 시간을 출력한다.  파이썬 시간 출력시간과 관련된 문제를 풀 때, 보통 초 단위로 시간을 변경해서 푸는데 이렇게하면 알고리즘은 쉽게 짤..
[백준/6236] 용돈 관리 | 이진 탐색 트리 | 분할 | 파이썬
·
PS/BOJ&Programmers
https://www.acmicpc.net/problem/6236 6236번: 용돈 관리현우는 용돈을 효율적으로 활용하기 위해 계획을 짜기로 하였다. 현우는 앞으로 N일 동안 자신이 사용할 금액을 계산하였고, 돈을 펑펑 쓰지 않기 위해 정확히 M번만 통장에서 돈을 빼서 쓰기로www.acmicpc.net 분할(partition)분할은 말 그대로 여러 개로 나눈다는 뜻인데, 이산수학에서의 분할은 보통 집합의 분할을 뜻한다.집합의 분할이란 공집합이 아닌 집합 X를 서로소인 부분집합 Y1, Y2..로 나누는 것이다.집합 Y들을 모으면 집합 X가 된다.X의 원소들은 서로소이며, 교집합이 없다.이 문제에서는 각각 일(day)별로 원소들이 있고 이들을 M번 분할하여 최소 K를 찾는다.입력 예제를 분할의 예로 들면 1..
[Python] 파이썬 딕셔너리
·
언어/PYTHON
개요코드트리에서 파이썬 딕셔너리를 공부한 내용이다 파이썬 딕셔너리(Python Dictionary) 파이썬 딕셔너리: 검색/삽입/삭제에 유용한 HashMap 자료구조다.HashMap: (key, value) 쌍, 순서와 상관없이 빠른 검색/삽입/삭제(시간복잡도 O(1))가 가능한 자료구조 딕셔너리 선언d1 = dict()d2 = {}d3 = { 'apple' : 1, 'banana' : 2, 'grape' : 3 }  key와 value 딕셔너리의 기본적인 구조는 dic_name[key] = value 이다. dic = dict()d['A'] = 90d['B'] = 80if 'A' in d : print(d['A']) # key를 통해 value 출력 dic.pop('A') # key A 와 ..
[백준/5430] AC | deque의 reverse() | reverse를 여러 번?
·
PS/BOJ&Programmers
괜히 난이도가 높은 게 아닌 듯한 문제 자료구조를 정확하게 이해하고, 효율적으로 사용할 줄 아는지 체크하기 좋다. 처음 작성한 코드 t = int(input()) for _ in range(t): p = input() n = int(input()) li = list(map(int, input()[1:-1].replace(',', ''))) for p_i in p : # R : 순서 뒤집기 if p_i == 'R': li = sorted(li, reverse= True) elif p_i == 'D': if len(li) == 0 : print('error') else: li.pop(0) print(li) 문제 1. replace는 단순히 변환해주는 함수라서 그대로 문자열임. split은 리스트 반환. 문제..
[백준/1021] 회전하는 큐 | python deque | dequed의 rotate()
·
PS/BOJ&Programmers
파이썬 dequedeque는 문제풀이에서 종종 사용했었지만 주요 내용을 다시 한번 정리해보았다.알고리즘파이썬 deque 자료구조를 알고있다면 어렵지 않게 해결할 수 있다. 최종코드from collections import dequen,m = map(int, input().split())que = deque(range(1,n+1))idx = list(map(int, input().split()))cnt = 0for i in idx: # 다 찾을 때까지 수행 while True: # 찾고자 하는 값의 위치가 중간보다 왼쪽인 경우 if que.index(i) 연산의 횟수를 세어야 하기 때문에 cnt 변수로 연산 횟수를 카운팅했다.알게된 점from collections imp..
[DB/MySQL] 기본 명령어
·
DB
기본 명령어 1. SHOW / SHOW TABLE SHOW TABLE; # world db의 테이블 이름 보기 SHOW TABLE STATUS; # world db의 데이터 이름 + 각각의 table 정보 조회 * world는 실습 예제 데이터 베이스이다. 2. DESCRIBE DESCRIBE table_name # DESC로 줄여서 사용 가능 데이터 베이스 내에 존재하는 테이블의 data를 확인 할 수 있다. 각각의 영역은 Field로 표시된다. 예제 데이터베이스 world의 테이블은 city, country, countrylanguage가 있고 위 코드를 실행하면 city에 존재하는 내용에 대해 확인 가능하다. 3. SELECT ⭐️⭐️⭐️ 데이터를 가져오는 명령어 FROM SELECT * FROM ..
[백준/20410] 추첨상 사수 대작전!(Easy)
·
카테고리 없음
알고리즘과 여러 번의 시도 뭐야 이문제 ㅋ 하고 처음에 이런 코드를 작성했다. m,s,x1,x2 = map(int,input().split()) a,c = 0, 0 while True: if x1 == (a*s+c)%m : if (a*x1+c)%m == x2: print(a,c); break else: a+=1 c+=1 else: a+=1 c+=1 3 3 / 4 4가 출력돼서 생각해보니까 a랑 c를 같은 조건에서 동시에 +1 해주면 항상 a=c이다. a랑 c를 따로 증가해주면서 조건에 맞는 구현을 하고싶으면 이중 포문으로 각각 증가하면서 조건에 맞는 케이스를 출력하면 된다. m,s,x1,x2 = map(int,input().split()) a,c = 0, 0 for a in range(m): for c ..
sebinChu
Studying IT with cobinding