목록Python/알고리즘(Python) (28)
일기 대신 코드 슬쩍
특정 거리의 도시 찾기(⭐)# 특정 거리의 도시 찾기 from collections import deque n,m,k,x = map(int,input().split()) graph = [[]for _ in range(n+1)] for i in range(m): a,b = map(int, input().split()) graph[a].append(b) distance = [-1] * (n+1) distance[x] = 0 q = deque([x]) while q: now = q.popleft() for next_node in graph[now]: if distance[next_node] == -1: distance[next_node] = distance[now] + 1 q.append(next_node) ..
특정 거리의 도시 찾기(⭐)# 특정 거리의 도시 찾기 from collections import deque n,m,k,x = map(int,input().split()) graph = [[]for _ in range(n+1)] for i in range(m): a,b = map(int, input().split()) graph[a].append(b) distance = [-1] * (n+1) distance[x] = 0 q = deque([x]) while q: now = q.popleft() for next_node in graph[now]: if distance[next_node] == -1: distance[next_node] = distance[now] + 1 q.append(next_node) ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kzBpi/btr1lAmFOPK/kzyKPuVwQW1Z1c1nQpBxDK/img.png)
음료수 얼려 먹기# 음료수 얼려 먹기 def dfs(x,y): if x = n or y= m: # 범위 벗어나는 경우 return False if graph[x][y] == 0: # 아직 방문 안 했다면 graph[x][y] = 1 dfs(x-1,y) # 왼쪽도 방문 dfs(x+1,y) # 오른쪽도 방문 dfs(x,y+1) # 위쪽도 방문 dfs(x,y-1) # 아래쪽도 방문 return True n,m = map(int, input().split()) graph = [] for i in range(n): graph.append(list(map(int,input()))) result = 0 for i in range(n): for j in range(m): if dfs(i,j) == True: resul..
럭키 스트레이트#럭키 스트레이트 score = input() sum1 = 0 sum2 = 0 for i in range(int(len(score)/2)): sum1 += int(score[i]) for i in range(int(len(score)/2),int(len(score))): sum2 += int(score[i]) if sum1 == sum2: print("LUCKY") else: print("READY") 문자열 재정렬#문자열 재정렬 S = input() S = list(S) a = [] sum = 0 for i in S: if i.isdigit(): sum += int(i) else: a.append(i) b = sorted(a) string = ''.join(b) print(string +..
왕실의 나이트 # 왕실의 나이트 location = 'a1' x = 0 y = 0 # 열을 숫자로 변경해주기 if location[0] == 'a': x = 1 elif location[0] == 'b': x = 2 elif location[0] == 'c': x = 3 elif location[0] == 'd': x = 4 elif location[0] == 'e': x = 4 elif location[0] == 'f': x = 3 elif location[0] == 'g': x = 2 elif location[0] == 'h': x = 1 if int(location[1]) > 4: if location[1] == '5': y = 4 elif location[1] == '6': y = 3 elif l..
상하좌우# 상하좌우 N = 5 P = ['R','R','R','U','D','D'] point = [1,1] for i in P: if i == 'R' and point[1] 1: point[1] -= 1 elif i == 'D' and point[0] 1: point[0] -= 1 print(' '.join(map(str,point))) 시각# 시각 N = 5 count = 0 for i in range(N+1): # '시' for j in range(60): # 분 for k in range(60): # 초 if '3' in str..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bKSPRg/btr1nwc4EcM/KkpvfYAUoRsEwZS5zDhcaK/img.jpg)
볼링공 고르기# 볼링공 고르기 M = 5 n = [1,5,4,3,2,4,5,2] N = len(n) count = 0 for i in range(N-1): for j in range(i+1,N): if n[i] != n[j]: # 무게가 같은 경우는 count += 1 else: # pass사용 pass print(count) Uploaded by Notion2Tistory v1.1.0
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/by7Vyg/btrZHIea5vJ/P4wrVPoqi4FGhRXeRikYSk/img.jpg)
문자열 뒤집기 #문자열 뒤집기 s = '0001100' count1 = 0 count0 = 0 for i in range(len(s)-1): # 0에서 1로 바뀌거나, 1에서 0으로 바뀌는 경우 count if s[i] != s[i+1]: if s[i+1] == 0: count1 += 1 else: count0 += 1 if s[0] == 0: # 첫 번째 숫자도 count를 더해줌 count0 += 1 else: count1 += 1 print(min(count0,count1)) 만들 수 없는 금액# 만들 수 없는 금액 N = [3,2,1,1,9] n = len(N) N = sorted(N) min = 1 for i in N: if i > min: break min += i print(min) Uplo..