CS/백준, 프로그래머스 풀이
-
[16236] 아기상어 (2) _ bfs코드(진행중)CS/백준, 프로그래머스 풀이 2022. 6. 14. 06:32
dx = (0, 0, 1, -1) dy = (1, -1, 0, 0) def bfs(shark_x, shark_y): q = collections.deque([(shark_x, shark_y, 0)]) # dist_list = [] # visited = [[False] * n for _ in range(n)] # visited[shark_x][shark_y] = True # min_dist = inf # while q: x, y, dist = q.popleft() for i in range(4): xx = dx[i] + x yy = dy[i] + y if 0
-
[16236] 아기상어 (1) _ 문제 설명 & 일부 코드 설명CS/백준, 프로그래머스 풀이 2022. 6. 13. 22:12
문제 해설 : N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가지고 있고, 이 크기는 자연수이다. 가장 처음에 아기 상어의 크기는 2이고, 아기 상어는 1초에 상하좌우로 인접한 한 칸씩 이동한다. 아기 상어는 자신의 크기보다 큰 물고기가 있는 칸은 지나갈 수 없고, 나머지 칸은 모두 지나갈 수 있다. 아기 상어는 자신의 크기보다 작은 물고기만 먹을 수 있다. 따라서, 크기가 같은 물고기는 먹을 수 없지만, 그 물고기가 있는 칸은 지나갈 수 있다. 아기 상어가 어디로 이동할지 결정하는 방법은 아래와 같다. 더 이상 먹을 수 있는 물고기가 공간에 없다면 아기 상..
-
[11866] 요세푸스 문제 0CS/백준, 프로그래머스 풀이 2022. 6. 12. 19:41
from collections import deque n, k = map(int, input().split()) pipe = deque() answer = [] for i in range(1, n + 1): pipe.append(i) while pipe: #파이프 내에 요소 체크 for i in range(k - 1): #3개면 2개를 다른 파이프로 보내고 pipe.append(pipe.popleft()) answer.append(pipe.popleft()) print("") 요론 느낌으로 생각하믄 좋다.
-
[1620] 나는야 포켓몬 마스터 이다솜CS/백준, 프로그래머스 풀이 2022. 6. 9. 23:35
n, m = map(int, input().split()) #포캣몬 개수 , 내가 맞춰야 할 문제의 개수 items = [] for i in range(n): items.append((i + 1, input())) for _ in range(m): res = input() if res.isdigit(): #여기서 서칭을 어떻게 해주느냐인데 for i in items: if i[0] == int(res): print(i[1]) break else: for i in items: if i[1] == res: print(i[0]) break 시간초과가 떴다. 당연한거다, for문이 두번이나 돌아가니말이다. 만약 파이썬으로 푼다면 그냥 dict로 해결가능한 문제였다. n, m = map(int, input().s..
-
[10814] 나이순 정렬CS/백준, 프로그래머스 풀이 2022. 5. 27. 02:57
n = int(input()) item_list = [] for _ in range(n): age, name = map(str, input().split()) age = int(age) item_list.append((age, name)) item_list.sort(key=lambda x : x[0]) #age 비교 for i in item_list: print(*i) 정답으로 제출한 파이썬 코드 나이순으로 정렬만 해주면 끝난다. 그런데 새삼 느낀 것은 아래는 같은 문제 C++코드인데 #include #include using namespace std; struct Node { int x; char y[200]; int z; }; bool compare(Node a, Node b) { return a.x..
-
[2609] 최대공약수 최소공배수CS/백준, 프로그래머스 풀이 2022. 5. 27. 01:31
상남자는 GCD라이브러리 쓰지 않는다. 뭔가 예제가 잘못되었는지 자꾸 터진다. n, m = map(int, input().split()) i = 2 temp = 0 #0,0이랑 1,1까지만 개선해보자 if n > m: i = m while True: if n % i == 0 and m % i == 0: print(i) print(n // i * m // i * i) break else: i -= 1 elif n < m: i = n while True: if m % i == 0 and n % i == 0: print(i) print(n // i * m // i * i) break else: i -= 1 else: if n == 0 or m == 0: print(0) print(0) else: temp = ..
-
[1181] 단어정렬CS/백준, 프로그래머스 풀이 2022. 5. 27. 00:08
https://www.acmicpc.net/problem/1181 Point. 1. 중복단어 제거 2. sort에 key를 사용하여 문제해결 3. (len(x), x) 스킬 요구사항이 글자수로 먼저 정리 후 (4, more) , (2, no) ,(2, it) ... 글자수 먼저 정렬 후 -> 문자열 정렬이 들어간다. n = int(input()) item_list = [] for _ in range(n): item_list.append(input()) item_list = list(set(item_list)) #중복단어 제거 item_list.sort(key=lambda x : (len(x), x)) for i in item_list: print(i)