본문 바로가기

알고리즘13

안전영역 -2468 (DFS) 입력 첫째 줄에는 어떤 지역을 나타내는 2차원 배열의 행과 열의 개수를 나타내는 수 N이 입력된다. N은 2 이상 100 이하의 정수이다. 둘째 줄부터 N개의 각 줄에는 2차원 배열의 첫 번째 행부터 N번째 행까지 순서대로 한 행씩 높이 정보가 입력된다. 각 줄에는 각 행의 첫 번째 열부터 N번째 열까지 N개의 높이 정보를 나타내는 자연수가 빈 칸을 사이에 두고 입력된다. 높이는 1이상 100 이하의 정수이다. 출력 첫째 줄에 장마철에 물에 잠기지 않는 안전한 영역의 최대 개수를 출력한다. import sys sys.setrecursionlimit(100000) input = sys.stdin.readline dx = [-1,1,0,0] dy = [0,0,1,-1] def dfs(x,y,h): for i.. 2022. 9. 18.
설탕 배달-2839 (while-else문) 충격! 늘 if-else만 써왔는데 알고리즘을 풀이를 보다가 while-else문을 발견했다. 파이썬에는 for-else와 while-else가 있다. for loop에서 iterable이 소진되면 else 구문이 실행된다. for-else예시) array = ['토','니','짱'] for i in array: print(i) else : print('else구문 실행') 출력 결과 토 니 짱 else구문 실행 while에서 else구문은 조건이 거짓이 되었을 때 실행된다. while-else 예시로 백준 2839 코드를 보자! n = int(input()) cnt = 0 while n>=0: if n%5==0: cnt += int(n//5) print(cnt) break n-=3 cnt+=1 else.. 2022. 9. 16.
단지번호붙이기 - 2667 (DFS & BFS) def dfs(x,y): if x>= n or x=n or y 2022. 9. 16.
[level 1] 신고 결과 받기 - 92334 처음에 제출한 코드 def solution(id_list, report, k): answer = [0]*len(id_list) #answer=[0,0,0,0](id_list의 길이만큼 0으로 채워주기) stop=[] rpt = {id:[] for id in id_list} #rpt={'muzi':[],'frodo':[]..}형태로 바꿔주기 #(신고당한놈:[신고한놈(들)]) for i in set(report): i = i.split(' ') rpt[i[1]].append(i[0]) #신고당한사람에게 신고자 값 넣어주기 for key,value in rpt.items(): if len(value) >= k: #value의 길이로 신고횟수 체크 for v in value: answer[id_list.inde.. 2022. 9. 16.
반응형