본문 바로가기

PYTHON91

백준 골드5 5430. AC (python) AC 풀이 문제에서 원하는 바는 다음과 같다. AC 정수 배열에 연산을 하기 위해 만든 언어 R 뒤집기와 D 버리기 가 있다. R은 수의 순서를 뒤집음. D는 첫 번째 수를 버림 배열이 비어있는데 D를 사용하면 에러발생 그런데 문제에서 주는 값을 보면 주는 값이 애초에 리스트 형식의 문자열을 주기 때문에 이를 다시 리스트로 바꿔줄 필요가 있다. 그래서 그 과정을 추가하고, 또한 답을 출력할 때도, 리스트를 표방한 문자열을 제공해줘야 한다. 그래서 난 문제에서 원하는 바와 같이 풀기 위해 D함수와 R함수도 만들고 실행을 했다. 아래 코드로 실행을 했고, 시간 초과가 발생했다. 설령 시간 초과가 발생하지 않았더라도 틀렸을 것이다. 이유는 출력하는 값이 문자열이 아닌 리스트 형식으로 출력했기 때문이다. [1,.. 2024. 3. 3.
백준 실버3 9375. 패션왕 신해빈 (python) 패션왕 신해빈 풀이 어떻게 할까 하다가 딕셔너리를 이용하기로 했다. 딕셔너리에 각 옷의 종류별로 key와 value를 받고 value는 리스트로 옷들을 입력했다. 따라서 {'headgear': ['hat', 'turban'], 'eyewear': ['sunglasses']} {'face': ['mask', 'sunglasses', 'makeup']} 와 같은 형태로 입력된다. 이를 이용해서 풀이를 했다. 테스트케이스와 입력받아야 하는 n을 입력받고 이를 이용해서 반복문 실행 딕셔너리 생성 후 옷과 옷의 종류를 딕셔너리에 리스트 값으로 입력 조합수를 확인하기 위해 딕셔너리의 key를 순회시켜서 각 key의 값의 길이에 안 입는 경우도 포함해서 len(dict [di])+1을 answer에 곱해주기 출력 시.. 2024. 3. 3.
백준 실버2 1260. DFS와 BFS (python) DFS와 BFS 풀이 dfs와 bfs의 기본적인 코드를 풀이하기 좋은 문제이다. 그런데 난 올바로 했다고 생각했는데 왜 계속 틀렸는지 모르겠다. 우선 보통 재귀를 이용해서 dfs 문제를 풀었는데 난 stack을 이용하기 위해 stack을 이용해서 풀었고, 또한 deque를 사용해서 bfs를 풀었는데 난 deque를 사용하지 않고 풀었다. (이 문제에선 굳이?) 마음 같아선, pop이 아닌 top 그리고 front, rear를 이용해서 풀고 싶었지만 우선 이 방식으로 되는지 먼저 확인하고 싶었기에 pop과 append를 이용했다. 다음과 같이 풀었다. 노드 개수 N, 간선 개수 M, 시작 노드 V를 입력받고 인접행렬을 만들어준다. dfs 함수와 bfs 함수를 생성 dfs는 stack을 이용해서 visite.. 2024. 3. 3.
백준 실버1 1074. Z (python) Z 풀이 처음에 문제를 보고 도저히 어떻게 푸는지 감이 안왔다.. 일단 사람 머리로는 이해가 되는데 컴퓨터 머리로는 어떻게 하는지 모르겠더군. 근데 다음 처럼 내용이 나왔다. 위치 값을 표기한 것인데 아래처럼 위치 값이 표기되었다. N = 0 [ [0,0] ] N = 1 # 2**(1-0)만큼을 큰 틀에서 더 움직임 [ [0,0], [0,1], [1,0], [1,1], ] N = 2 # 2**(2-1)만큼을 큰 틀에서 더 움직임 [ [0,0],[0,1],[1,0],[1,1], [0,2],[0,3],[1,2],[1,3], [2,0],[2,1],[3,0],[3,1], [2,2],[2,3],[3,2],[3,3], ] N = 3 # 2**(3-1)만큼을 큰 틀에서 더 움직임 # N=2 의 값에서 열에 2**2,.. 2024. 3. 2.
백준 실버4 1620. 나는야 포켓몬 마스터 이다솜 (python) 나는야 포켓몬 마스터 이다솜 풀이 처음에는 리스트를 인덱스와 이름을 같이 넣어서 확인할까 하다가 그냥 딕셔너리를 사용하기로 했다. 다음처럼 풀었다. 이름번호, 번호이름 2개의 딕셔너리 생성. 이때 번호는 str로 저장을 했다. 이름을 받으면서 딕셔너리에 각각 입력 isalpha() 함수를 이용해서 이름으로 입력받으면 이름번호에서 찾아내고, 번호로 입력받으면 번호이름에서 찾아내기 따라서 전체 코드는 아래와 같다. # 포켓몬의 갯수 N, 맞춰야하는 문제 갯수 M # 1 2024. 3. 2.
백준 실버1 1931. 회의실 배정 (python) 회의실 풀이 문제를 보고 어떻게 할까 구상하다가 처음에는 사용하고 있는 모든 시간을 기록하는 리스트 변수를 생성할까 하다가 굳이 그럴 필요는 없다고 생각되었다. 이유는 현재 회의의 종료 시간이 다음 회의의 시작 시간보다 늦으면 다음 회의는 할 수 없고, 현재 회의의 종료 시간이 다음 회의의 시작시간보다 일찍이면 다음 회의를 시작할 수 있기 때문이다. 이를 이용하는 것을 재귀함수를 이용해서 진행하기 위해 아래처럼 진행을 해봤다. 하지만 시간 초과가 발생했다. # 한 개의 회의실. 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 갯수. import sys def check_maxuse(nums, use_time, i): global max_use if max_use < nums: max_.. 2024. 3. 2.