Algorithm

Algorithm/Python

[프로그래머스] 삼각 달팽이

https://school.programmers.co.kr/learn/courses/30/lessons/68645 해당 문제에 대해 좌표를 삼각형 모양을 따라가며, 값을 증가시키며 넣은 방식으로 먼저 구현해보았다. 그러나 다른 변에서는 괜찮지만, 매 삼각형의 시작 꼭짓점 부분은 위에서 이전 시작점보다 세 좌표 아래서 해야 하기 때문에 고민이 되었다. https://school.programmers.co.kr/questions/52719 해당 글을 참고하여, 움직이는 방향을 바꿔야 할 때 (즉, 다음 움직일 예정 좌표가 n이상 0 미만이거나 할당된 값이 0 초과인 경우) 방향을 바꾸는 식으로 작성하였다. 또한 삼각형의 값들을 채울 때에는 1~n-1길이의 배열들을 사용하였지만, 최종 답안은 하나의 배열이므로..

Algorithm/SQL

[프로그래머스] MySQL 흉부외과 또는 일반외과 의사 목록 출력하기

https://school.programmers.co.kr/learn/courses/30/lessons/132203SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d')FROM DOCTORWHERE MCDP_CD IN ('GS','CS')ORDER BY HIRE_YMD DESC, DR_NAME ASC; DATE_FOMRAT 함수를 사용하여 원하는 형태로 DATETIME을 출력할 수 있다.

Algorithm/SQL

[프로그래머스] MySQL 경기도에 위치한 식품창고 목록 출력하기

https://school.programmers.co.kr/learn/courses/30/lessons/131114SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, COALESCE(FREEZER_YN,'N') AS FRREEZER_YNFROM FOOD_WAREHOUSEWHERE ADDRESS LIKE "경기도%"ORDER BY WAREHOUSE_ID ASC;`COALESCE` 함수를 이용해서 NULL인 값들은 'N'으로 채워준다.

Algorithm/Python

[백준] 7662 이중 우선순위 큐

https://www.acmicpc.net/problem/7662 항상 순서가 정렬되어야 하고, 가장 앞&뒤에서 값을 빼야 할 때 사용할 수 있는 데이터타입은 여러 가지 있겠지만, 최대한 검색 시간을 줄이기 위해서 heap을 두 가지 사용하였다.maxheap은 숫자에 -1을 곱해서 넣어서, 가장 큰 값에 -1이 곱한 수가 가장 위에 오도록 하고, minheap은 그대로 넣어서 오름차순으로 정렬되도록 하였다. 이때 minheap이든 maxheap이든, 가장 위에 있는 값을 뺀 다음에는 다른 heap에서 그 값을 빼야 할 텐데, 그렇게 하면 시간 초과가 된다!!따라서 현재 있는 인덱스를 chk라는 세트에 저장해두고, 만약 나중 차례에 뺀 값이 이 안에 없다면 이미 제거된 값이라는 뜻이므로 다음으로 위에 있는..

Algorithm/Python

[백준] 16928 뱀과 사다리 게임

https://www.acmicpc.net/problem/16928문제를 읽자마자 당연히 이전 방문보다 다음 방문이 더 카운트가 크므로 DP구나 싶었다그러나 snake를 통해 방문한 게 더 작은 주사위 카운트가 될 수도 있다는 것을 보고 조금 수정하게 되었다.snake의 머리가 있는 곳에 방문할 경우,1. 만약 머리가 있는 곳의 값이 꼬리가 있는 곳의 값보다 작다면 꼬리가 있는 곳의 값을 머리가 있는 곳의 값으로 바꾸고, 꼬리의 좌표로 이동하여 다시 진행한다. 단, 머리가 있는 곳은 다시 방문할 수 없게 하거나 혹은 다른 곳처럼 주사위로 갈 수 있다고 헷갈리지 않게 100을 넣는다.2. 머리가 있는 곳의 값이 꼬리가 있는 곳보다 크다면 그냥 헷갈리지 않게 머리에 100을 넣는다. 꼬리가 있는 곳으로 다시..

Algorithm/Python

[백준] 2156 포도주 시식

https://www.acmicpc.net/problem/2156 각 포도주마다 선택할 수 있는 선택지는 두 가지가 있다. 1. 지금 마신다2. 마시지 않는다 그러나 포도주를 3잔 연속 마실 수는 없기 때문에, 직전에 마셨고 이번에 마셨다면 다음에 마실 수 없다.따라서 연속으로 포도주를 마신 횟수에 따라 배열에 저장한다면 dp 배열은누적 0번 | 1번 | 2번위와 같은 형태가 될 것이다.누적 0번의 경우, 직전에 몇 번을 마셨든 이번 순서에 마시지 않는 것이기 때문에 직전 순서의 max 값을 가져오면 된다.누적 1번의 경우, 직전까지 0번 누적이고 이번 순서에서 마시는 것이기 때문에 이번 포도주의 양 + 직전 누적0번의 값이다.누적 2번의 경우, 1번과 동일하게 이번 포도주의 양 + 직전 누적 1번의 값..

Algorithm/Python

[백준] 3273 두 수의 합

https://www.acmicpc.net/problem/3273import sysinput = sys.stdin.readlineN = int(input())arr=sorted(list(map(int, input().split())))X= int(input())check = [False for _ in range(X//2+2)]idx=0cnt=0while idx=X: break elif num

Algorithm/Python

[백준] 6603 로또

https://www.acmicpc.net/problem/6603import sysinput=sys.stdin.readlinewhile True: arr = list(map(int, input().split())) if arr[0]==0: break k = arr[0] s = sorted(arr[1:]) def dfs(now, len, k, s, ans): ans.append(s[now]) if len==6: print(*ans) else: for x in range(now+1, k): dfs(x, len+1, k,s, ans) if ans: ans.pop..

Algorithm/Python

[백준] 2473 세 용액

https://www.acmicpc.net/problem/2473https://wondev.tistory.com/138 [백준] 2473. 세 용액 - 파이썬[Gold III] https://www.acmicpc.net/problem/2473 2473번: 세 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 3 이상 5,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이wondev.tistory.comimport sysinput = sys.stdin.readlinen = int(input())arr = list(map(int, input().split()))arr.sort()def find(arr, n): res =[1000000000,1000000000,..

Algorithm/Python

[백준] 2110 공유기 설치

https://www.acmicpc.net/problem/2110import sysinput = sys.stdin.readline# 최소 인접 거리가 최소가 되게 -> 이분 탐색 사용n, c = map(int, input().split())arr=[]for _ in range(n): arr.append(int(input()))arr.sort() #오름차순 정렬left = 1right=arr[-1]-arr[0] #최소 거리를 이분탐색으로 찾는 것while left= curr+mid: cnt+=1 curr=arr[i] if cnt>=c: left=mid+1 else: right=mid-1print(right)

yoursin
'Algorithm' 카테고리의 글 목록 (3 Page)