본문 바로가기

분류 전체보기55

주피터 노트북에서 백준 입력 편하게 받기 백준에서 입력값이 여러 줄일 경우 일일이 입력하는게 상당히 귀찮다. 이럴때 로컬 경로의 텍스트 파일에서 직접 입력을 받으면 훨씬 편하다. 해당 주피터 노트북 파일(.ipynb)이 실행되는 경로와 같은 위치에 텍스트 파일을 생성한 후, 코드의 앞 부분에 한 줄을 추가하면 직접 입력해 input을 받는 코드와 완전히 동일하다. (기존의 input 함수를 덮어쓰는 것에 유의) # input.txt에 입력된 두 정수의 합을 출력 input = open("input.txt").readline a, b = map(int, input().split()) print(a + b) # input 함수 원래대로 # del input input.txt는 다른 이름으로 대체가 가능하고, input 역시 기존의 input 함수를.. 2023. 1. 31.
프로그래머스 롤케이크 자르기 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/132265 from collections import Counter def solution(topping) : answer = 0 top_1 = Counter(topping) top_2 = set() for i in range(len(topping)) : top = topping[i] top_2.add(top) top_1[top] -= 1 if top_1[top] == 0 : # 딕셔너리에서 특정 키 제거. del dict[key] 도 가능 top_1.pop(top) if len(top_1) == len(top_2) : answer += 1 return answer 모든 인덱스마다 앞뒤로 쪼.. 2023. 1. 25.
백준 10971번 : 외판원 순회 2 (Python) 출처 : https://www.acmicpc.net/problem/10971 n = int(input()) graph = [list(map(int, input().split())) for _ in range(n)] min_cost = int(1e9) visited = [False] * n # now : 현재 방문 중인 도시 # now_cost : 지금 도시까지 비용 # visits_cnt : 지금까지 방문한 도시 수 def back_track(now, now_cost, visits_cnt) : global min_cost # 지금까지 비용이 최소 비용보다 크면 더 이상 탐색 X if now_cost >= min_cost : return # 모든 도시 다 방문하면 처음 시작한 도시로 돌아가야 함 if vi.. 2023. 1. 25.
백준 2206번 : 벽 부수고 이동하기 (Python) 출처 : https://www.acmicpc.net/problem/2206 from collections import deque # n : 행 개수 , m :열 개수 n, m = map(int, input().split()) graph = [list(input()) for _ in range(n)] # visited[0][x][y] : 벽을 안 부수고 (x, y)까지 최단거리 # visited[1][x][y] : 벽을 1회 부수고 (x, y)까지 최단거리 visited = [[[0] * m for _ in range(n)] for _ in range(2)] def bfs(start_x, start_y) : visited[0][start_x][start_y] = 1 move =[(0, 1), (0, -1).. 2023. 1. 19.