[Coding Test]/[백준]
[백준] 15656 파이썬(python) : N과 M (7)
15656번 : N과 M (7) n, m = map(int, input().split()) answer = list(map(int, input().split())) answer.sort() result = [] def dfs(depth): if depth == m: print(*result) return for ans in answer: result.append(ans) dfs(depth+1) result.pop() dfs(0) 중복을 허용해 주고 자기자신이 들어와도 괜찮은 아무조건이 없는 문제다.
[백준] 15655 파이썬(python) : N과 M (6)
15655번 : N과 M (6) 나의 풀이) n, m = map(int, input().split()) answer = list(map(int, input().split())) result = [] answer.sort() def dfs(): if len(result) == m: print(*result) return for ans in answer: #1 if ans in result: continue if len(result) != 0 and result[-1] >= ans: continue result.append(ans) dfs() result.pop() dfs() #1 : 1~n을 돌려주기 싫어서 만든 나의 풀이 하지만 깔끔하지 못하다는 생각이 든다. 다른 풀이) n, m = map(int, i..
[백준] 15654 파이썬(python) : N과 M (5)
15654번 : N과 M (5) n, m = map(int, input().split()) num = list(map(int, input().split())) num.sort() visit = [False] * n #1 result = [] def dfs(depth): if depth == m: #2 print(*result) for i in range(n): if not visit[i]: result.append(num[i]) visit[i] = True dfs(depth+1) result.pop() visit[i] = False dfs(0) #1 : dfs에 필요한 방문처리 자기자신을 다시 방문하지 않기위해 필요 #2 : m만큼의 깊이가 되면 출력하도록 한다. 1차 수정) n, m = map(int,..
[백준] 10815 파이썬(python) : 숫자 카드
https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net n = int(input()) cards = list(map(int, input().split())) m = int(input()) compare = list(map(int, input().split())) cards.sort() #1 start, end = 0, n-1 #2 def binary_search(cards, start, end, target): #3 wh..
[백준] 18870 파이썬(python) : 좌표 압축 - (★)
18870번: 좌표 압축 dict를 사용하면 시간복잡도 O(1)로 줄일 수 있습니다. import sysn = int(sys.stdin.readline())answer = list(map(int, sys.stdin.readline().split()))tmp = sorted(list(set(answer))) #1dict = { tmp[i] : i for i in range(len(tmp))} #2for i in answer: print(dict[i], end=" ") #3 #1 : 중복값을 없애주고 리스트화한 후에 정렬한 임시 리스트를 만든다.#2 : 리스트 만들듯이 hash를 key : value = 값 : 인덱스 관계로 생성#3 : answer에 받은 값 마다 key로 인식하여 value값..
[백준] 18111 파이썬(python) : 마인크래프트
18111번: 마인크래프트 pypy3로 제출해야 합니다. import sysn, m, b = map(int, sys.stdin.readline().split())graph = [ list(map(int, sys.stdin.readline().split())) for _ in range(n) ]min_value = min(map(min, graph)) #1max_value = max(map(max, graph)) #2leastTime = float('Inf') #3for i in range(min_value, max_value+1): #4 plus_container = 0 #5 minus_container = 0 #6 for j in range(n): for k in r..