본문 바로가기

CodingTest

(238)
[ 프로그래머스 ] 양궁대회 보호되어 있는 글입니다.
[ 프로그래머스 ] 퍼즐 조각 채우기 사실 문제 푸는데 집중을 못 했다.. 아침에 뉴스를 보고 왔더니 계속 생각나면서 여러 생각이 났다. 계획한 45분 내에 푸는 것 실패. 시간 지났어도 더 풀어보려고 했는데 dfs부분 순간 헷갈리면서 더 진행할 마음이 안 나서 그냥 풀이 보고 공부하기로 했다. from collections import deque def dfs(blocks, depth): if depth == len(blocks): return # 이 아래 부분을 구현하다가 그냥 포기했다. for b in blocks: dfs(blocks, depth+1) def solution(game_board, table): answer = -1 dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] # 블럭 찾아서 모양대로 배열에 넣기..
[ 프로그래머스 ] 할인 행사 오.. 5분 컷. def solution(want, number, discount): answer = 0 for i in range(len(discount) - sum(number) + 1): check = [] product = discount[i:i+sum(number)] for w in want: check.append(product.count(w)) if check == number: answer += 1 return answer 그런데 효율성 측면에서 떨어지나.. 시간이 꽤 오래 소요되는 것 같다. 그래서 다른 분들 풀이 체크. def solution(want, number, discount): basket = 0 for i in range(len(want)): basket += number[i..
[ 프로그래머스 ] 혼자 놀기의 달인 처음에 문제가 눈에 잘 안 들어와서 당황했다. 설명식의 문제가 간만에 나와서 약간 놀라 흠칫했던 것 같다. def solution(cards): groups = [] visited = [False] * len(cards) for i in range(len(cards)): if not visited[i]: k = cards[i] group = [] while True: if visited[cards[k-1]-1] == True: break group.append(cards[k-1]) visited[cards[k-1]-1] = True k = cards[k-1] groups.append(group) groups.sort(key=len, reverse=True) answer = len(groups[0]) * ..
[ 프로그래머스 ] 아이템 줍기
[ 프로그래머스 ] 단어 변환 from collections import deque def solution(begin, target, words): if target not in words: # 아예 target없는 경우 미리 리턴 return 0 q = deque([(begin, 0)]) while q: x, cnt = q.popleft() if x == target: return cnt for i in range(len(words)): diff = 0 word = words[i] for j in range(len(x)): if x[j] != word[j]: diff += 1 if diff == 1: q.append((word, cnt + 1)) return 0 : 문자열 변환하면, 하나하나 새로 만들어주며 조건에 맞는지 체크를 하..
[ 프로그래머스 ] 게임 맵 최단거리 from collections import deque dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] def bfs(a, b, visited, maps, n, m): global dx, dy q = deque([(a, b)]) visited[a][b] = 1 while q: x, y = q.popleft() for i in range(4): nx = x + dx[i] ny = y + dy[i] if 0
[ 프로그래머스 ] 네트워크 from collections import deque def bfs(v, visited, computers): q = deque([v]) visited[v] = 1 while q: x = q.popleft() for i in range(len(computers[x])): if computers[x][i] == 1 and not visited[i]: q.append(i) visited[i] = 1 def solution(n, computers): answer = 0 visited = [0] * n for v in range(n): if not visited[v]: bfs(v, visited, computers) answer += 1 print(visited) return answer 우또비.. 또 BFS풀..
[ 프로그래머스 ] 단속카메라 def solution(routes): answer = 1 routes.sort(key=lambda x:x[0]) cam = [routes[0][1]] last_cam = routes[0][1] for i in range(1, len(routes)): start, end = routes[i] if start
[ BOJ / 파이썬 ] 23290 마법사 첫 40분 풀이 실패.. 인 듯.. 애초에 능력도 안 되면서 시간 제한을 너무 빡빡하게 잡았나..? ㅋㅋㅋ 우선 집중이 잘 안 돼서 문제 정리하는 데 오래 걸렸다.. 시험 잡히자마자 계속 이 상태다.. 긴장과 불안 때문에 문제가 안 읽혀.. 😥 멘탈의 문제라기보다는 실력의 문제인 것 같기는 하다.. 경험치 부족.. 아 한 달만 있다가 시험 보면 좋겠다 ㅋㅋㅋ 하여간 좌표 안에 데이터로 방향 정보를 거의 사용 안 하고 만들어나가다가 3번 조건 사전 순 변환 설명 보고 얼씨구..? 이것봐라? 내 풀이는 다른 방향인데..? 하고 멈춰버렸다. 한 번 망했을 때 다시 부딪힐 용기!!가 필요한데 최근에 풀이 찾아보는게 습관이 되어서 그런가 너무 하기 싫다. 진짜 요즘 근성제로.. 혹은 마이너스 ^^ ... 돌아왕~..