PS(33)
-
[SOFTEER] 바이러스
문제 링크https://softeer.ai/practice/6284 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai느낀 점로직 자체는 단순한데, 수가 엄청 큰 경우, 한 번 계산할 때 마다 나누어주면서 해야 시간 초과가 안나는 경우도 있다는 것을 알게됨. 그리고 pow함수에는 중간 중간 나눠주는 몫을 지정할 수도 있다 ! import sysnumbers = list(map(int, sys.stdin.readline().split()))answer = numbers[0] * pow(numbers[1], numbers[2], 1000000007) % 1000000007print(answer)
2024.06.27 -
[백준] 4963 - 섬의 개수
문제 링크https://www.acmicpc.net/problem/4963느낀 점아주 기본 적인 dfs 구현 문제!import syssys.setrecursionlimit(12345678)answer = []while True: w, h = map(int, sys.stdin.readline().split()) if w == 0 and h == 0: break else: count = 0 maps = [] for _ in range(h): maps.append(list(sys.stdin.readline().split())) d = [(-1, 0), (-1, -1), (-1, 1), (0, -1), (0, 1)..
2024.06.26 -
[백준] 2644 - 촌수계산
문제 링크https://www.acmicpc.net/problem/2644느낀 점이 문제도 아주 기초적인 dfs 구현 문제 하지만, 이것도 뒤로 돌아가는 과정을 없애주면서 진행해주어야해서 그 부분을 신경써주어야함!import sysimport collectionssys.setrecursionlimit(12345678)def dfs(startV): global visited global count global final_count queue.append(startV) visited.append(startV) while queue: q = queue.popleft() for v in graph[q]: if v not in visit..
2024.06.26 -
[백준] 2606 - 바이러스
문제 링크https://www.acmicpc.net/problem/2606느낀 점아주 기초적인 dfs 활용 구현 문제 이런 것들은 바로바로 풀 수 있을 만큼 연습하자!import sysimport collectionssys.setrecursionlimit(12345678)def dfs(startV): global visited queue.append(startV) visited.append(startV) while queue: q = queue.popleft() for v in graph[q]: if v not in visited: dfs(v)graph = collections.defaultdict(list)qu..
2024.06.26 -
[백준] 1189 - 컴백홈
문제 링크https://www.acmicpc.net/problem/1189느낀 점기본적인 구현 문제를 많이 연습해야한다는 것을 느꼈음. 그리고 지나가면서 올렸던 숫자를 모두 제자리로 원상 복구 시켜줘야 다른 경우에서도 쓸 수 있으므로 그 과정을 신경 써주어야했음!import syssys.setrecursionlimit(12345678)R, C, K = map(int, sys.stdin.readline().split())count = 0maps = []for _ in range(R): maps.append(list(sys.stdin.readline().strip()))d = [(-1, 0), (0, -1), (0, 1), (1, 0)]maps[R-1][0] = 1def dfs(i, j): glo..
2024.06.26 -
[백준] 24480 - 깊이 우선 탐색 2
문제 링크https://www.acmicpc.net/problem/24480import sysimport collectionssys.setrecursionlimit(12345678)def dfs(startV): global visited_order queue = collections.deque([startV]) visited[startV] = visited_order while queue: q = queue.popleft() for v in graph[q]: if visited[v] == 0: visited_order += 1 visited[v] = visited_order ..
2024.06.26