본문 바로가기

전체 글

(357)
[프로그래머스] <신규 아이디 추천> 파이썬 programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 카카오계정개발팀에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. 네오에게 주어진 첫 업무는 새로 가 programmers.co.kr 노가다, 기초 점검에 좋음 def solution(new_id): char = list(new_id) # 1단계 for i, c in enumerate(char) : if ord(c) >= ord("A") and ord(c) ord("z")) and c not in "1234567890" and c not in '-_.' : char[i] = "" #3단계 new_id =..
[프로그래머스] <두 개 뽑아서 더하기> 파이썬 programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr from itertools import combinations def solution(numbers): answer = [] for i,j in combinations(numbers, 2): answer.append(i+j) answer = list(set(answer)) answer.sort() return answer 정확성..
[프로그래머스] <크레인 인형뽑기 게임> 파이썬 programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr def solution(board, moves): stack = [] answer = 0 for move in moves : for i in range(len(board[0])) : if board[i][move-1] != 0 : temp = board[i][move-1] board[i][move-1] = 0 if not stack : stack.append(temp) elif stack[-1] == ..
[프로그래머스] <여행경로> 파이썬 programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [[ICN, SFO], [ICN, ATL], [SFO, ATL], [ATL, ICN], [ATL,SFO]] [ICN, ATL, ICN, SFO, ATL, SFO] programmers.co.kr 시작점 인천인지 모르고 그냥 dfs 조지다가 머리 빠질 뻔함 def solution(tickets): tickets.sort(key = lambda x : (x[0], x[1])) route = ["ICN"] stack = [] used = [False] * len(tickets) def dfs(i,ticket) : stack.append((i, ticket)) route.append(ticket[..
[프로그래머스] <단어 변환> 파이썬 programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr BFS 이용 from collections import deque def solution(begin, target, words): if target not in words : return 0 answer = 0 check = [0] * (len(words)+1) visited = [False] * (len(words)+1) words..
[프로그래머스] <네트워크> 파이썬 programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr def solution(n, computers): answer = 0 def dfs(x,y) : if x = n or y = n : return False if computers[x][y] == 1 : computers[x][y] = 0 dfs(x+1,y) dfs(x-1,y) dfs(x,y+1) dfs(x,y-1) return True..
[프로그래머스] <타겟 넘버> 파이썬 programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr DFS로 풀었음 answer = 0 def dfs(index, res, numbers, target) : global answer if index == len(numbers) : if res == target : answer += 1 return dfs(index+1, res + numbers[index], numbers,..
[프로그래머스] <섬 연결하기> 파이썬 programmers.co.kr/learn/courses/30/lessons/42861 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 읽자마자 그냥 MST인거 알았음 MST 구현 알고리즘에는 프림 알고리즘, 크루스칼 알고리즘이 있음 크루스칼 하다가 중간에 막혀서 프림으로 구현함 파이썬으로 코테 준비한지 얼마안됐는데, 자료형 집합쓰면 편하겠다고 바로 생각해낸게 뭐랄까 기뻤음 def solution(n, costs): costs.sort(key = lambda x : x[2]) total = 0 village= set([costs[0][0]]) while len(village) != n : for i, cos..