본문 바로가기
반응형

분류 전체보기103

[이취코] 음료수 얼려 먹기 출처 : 이것이 취업을 위한 코딩 테스트다 with python P. 149 유형 : DFS 1. 문제 N × M 크기의 얼음 틀이 있다. 구멍이 뚫려 있는 부분은 0, 칸막이가 존재하는 부분은 1로 표시된다. 구멍이 뚫려 있는 부분끼리 상, 하, 좌, 우로 붙어 있는 경우 서로 연결되어 있는 것으로 간주한다. 이때 얼음 틀의 모양이 주어졌을 때 생성되는 총 아이스크림의 개수를 구하는 프로그램을 작성하라. 다음의 4 × 5 얼음 틀 예시에서는 아이스크림이 총 3개가 생성된다. 4 5 # N, M 00110 00011 11111 00000 2. 문제 설명 3 3 001 010 101 3. 코드 N, M = map(int,input().split()) graph = [] for _ in range(N): g.. 2022. 2. 8.
[해커랭크] Journey to the Moon 문제 링크 : https://hackerrank.com/challenges/journey-to-the-moon 참고 : https://www.snoopybox.co.kr/1766 유형 : Algorithms > Graph Theory 난이도 : Medium 1. 문제 설명 문제는 링크타고 들어가면 자세히 볼 수 있고, 나중에 다시 볼 나를 위해 대략 설명하겠다. 4 1 0 2 위와 같은 예시가 있다고 했을 때, 결과는 5가 나와야 하는데 왜 5가 나와야 하는지 알아보자! 첫 번째 줄에 있는 숫자 2개 중 첫 번째(4)는 우주비행사 수를 나타내고, 두 번째(1)는 그 다음 줄을 몇 번 입력받을 지를 알려준다. 먼저 우주비행사 수가 4이므로 우주비행사가 [0,1,2,3] 이렇게(?) 있다. 첫 번째 줄을 제.. 2022. 2. 8.
[백준] 1715번 : 카드 정렬하기 유형 : 힙, 자료구조, 그리디 [예제 입력] 3 10 20 40 [예제 출력] 100 1. 아이디어 처음에 예제를 잘못 이해했다. 2개씩 묶어서 결국 가장 적은 비교 횟수를 구하고자 하기 위해 작은 크기부터 정렬을 해야 한다고 생각했다. 여기까지는 방향을 맞게 왔으나.. 카드 묶음을 비교하고 난 결과값을 다시 카드 더미에 넣는 부분을 빼먹었다. 그래서 테스트케이스 값이 계속 다르게 나와 어디서 틀린지조차 몰랐었다. 알고리즘은 다음과 같다. (풀이 참고) ① 총 비교 횟수(result)를 0으로 둔다. ② 현재 카드 더미(card) 중 가장 작은 2개의 카드 묶음(first, second)을 고른다. ③ _sum = first + second 값이 현재 단계에서 비교한 횟수를 의미한다. ④ _sum 값을.. 2022. 1. 25.
[백준] 1927번 : 최소 힙 유형 : 힙, 자료구조 [예제 입력] 9 0 12345678 1 2 0 0 0 0 32 [예제 출력] 0 1 2 12345678 0 1. 내 풀이 1) 첫 번째 풀이 import sys n = int(sys.stdin.readline()) list = [] for i in range(n): x = int(sys.stdin.readline()) if x == 0: # 가장 작은 값 출력 if len(list) == 0: print(0) else: print(min(list)) list.remove(min(list)) # min 제거 else: list.append(x) ▷ 시간초과가 발생하길래, sys.stdin.readline()을 이용하였다. ▷ heapq라는 라이브러리를 몰라서 못 썼는데, 내가 알고.. 2022. 1. 24.
[백준] 2250번 : 트리의 높이와 너비☆ 유형 : 트리, 구현 난이도 : 중(상) [예제 입력] 19 1 2 3 2 4 5 3 6 7 4 8 -1 5 9 10 6 11 12 7 13 -1 8 -1 -1 9 14 15 10 -1 -1 11 16 -1 12 -1 -1 13 17 -1 14 -1 -1 15 18 -1 16 -1 -1 17 -1 19 18 -1 -1 19 -1 -1 [예제 출력] 3 18 1. 내 풀이(미완성) class Node: def __init__(self, data, left_node, right_node): self.data = data self.left_node = left_node self.right_node = right_node self.col = 0 self.level = 0 array = [] def in_orde.. 2022. 1. 10.
[백준] 1991번 : 트리 순회 ☆ 유형 : 트리, 구현 [예시 입력] 7 A B C B D . C E F E . . F . G D . . G . . [예시 출력] ABDCEFG DBAECFG DBEGFCA 1. 내 풀이 더보기 N = int(input()) value_list = [] key_list = [] for _ in range(N): tmp = input().split(' ') key_list.append(tmp[0]) value_list.append(tmp[1:]) graph = dict(zip(key_list,value_list)) start_node = 'A' visited, need_visit = list(), list() need_visit.append(start_node) # 전위 순회 while need_visit:.. 2022. 1. 9.
반응형