Programmers / 2단계 / 방문 길이 / python
·
코딩테스트/programmers (python)
https://school.programmers.co.kr/learn/courses/30/lessons/49994 나의 풀이 def solution(dirs): j={'R':0, 'L':0, 'U':0, 'D':0} location=[] count=0 for i in dirs: j[i]+=1 if (j['R']-j['L'], j['U']-j['D']) not in location and (abs(j['R']-j['L'])
Programmers / 2단계 / [3차] n진수 게임 / python / 2018 KAKAO BLIND RECRUITMENT
·
코딩테스트/programmers (python)
https://school.programmers.co.kr/learn/courses/30/lessons/17687 나의 풀이 (오답) def solution(n, t, m, p): num='' for i in range(t): answer='' while i / n >= 1: answer += str(i % n) i = i // n else: answer += str(i) num += answer[::-1] return num 이진수를 구하는 것까지는 접근 가능하였으나 10~15를 각각 A~F로 출력하는 조건과 게임에 참가하는 인원과 튜브의 순서 사이에서 어떻게 찾고자 하는 문자열을 뽑아낼 것인지 어려움이 있었다. 모범 답안 def convert(number, n): if number == 0: retu..
Programmers / 2단계 / 다리를 지나는 트럭 / python
·
코딩테스트/programmers (python)
https://school.programmers.co.kr/learn/courses/30/lessons/42583 나의 풀이 (오답) from collections import deque def solution(bridge_length, weight, truck_weights): q=deque() q.append(truck_weights[0]) time=1 truck_weights = truck_weights[1:] while truck_weights: if len(q)
Programmers / 2단계 / [3차] 압축 / python / 2018 KAKAO BLIND RECRUITMENT
·
코딩테스트/programmers (python)
https://school.programmers.co.kr/learn/courses/30/lessons/17684?language=python3 나의 풀이 . 모범 답안 def solution(msg): alpha = {chr(i+65) : i+1 for i in range(26)} answer = [] while True: if msg in alpha: answer.append(alpha[msg]) break for i in range(1,len(msg)): if msg[:i+1] not in alpha: answer.append(alpha[msg[:i]]) alpha[msg[:i+1]] = len(alpha)+1 msg = msg[i:] break return answer alpha 딕셔너리에 for..
Programmers / 2단계 / 땅따먹기 / python
·
코딩테스트/programmers (python)
코딩테스트 연습 - 땅따먹기 | 프로그래머스 스쿨 (programmers.co.kr) 나의 풀이 . 모범 답안 def solution(land): for i in range(1,len(land)): for j in range(len(land[0])): land[i][j] += max(land[i-1][:j] + land[i-1][j+1:]) return max(land[len(land)-1]) 배열에서의 최댓값을 더해 최고점을 구해야 하는데 여기에 같은 열을 제외한다는 조건이 있는 문제이다. 같은 열을 제외해야 하므로 max 함수를 이용해서 최댓값의 인덱스를 찾고 다음 행의 최댓값의 인덱스와 비교하여 찾아야 하는지 고민하였지만, 무조건 첫 번째 행의 최댓값을 선택하여 그 열을 기준으로 구한 값이 최고점이..
Programmers / 2단계 / 뒤에 있는 큰 수 찾기 / python
·
코딩테스트/programmers (python)
코딩테스트 연습 - 뒤에 있는 큰 수 찾기 | 프로그래머스 스쿨 (programmers.co.kr) 나의 풀이 def solution(numbers): result=[] for i in range(len(numbers)): for j in numbers[i:]: if numbers[i]
Programmers / 2단계 / [스택/큐] 주식가격 / python
·
코딩테스트/programmers (python)
코딩테스트 연습 - 주식가격 | 프로그래머스 스쿨 (programmers.co.kr) 나의 풀이 . 모범 답안 def solution(prices): length = len(prices) # 모든 가격 max값으로 세팅 result = [ i for i in range (length - 1, -1, -1)] # 주식 가격이 떨어지는 경우를 찾아 수정 stack = [0] for i in range (1, length): while stack and prices[stack[-1]] > prices[i]: j = stack.pop() result[j] = i - j stack.append(i) return result 1. 모든 가격 max값으로 세팅: result=[4,3,2,1,0] 2. 가격이 떨어지는..
Programmers / 3단계 / [DFS/BFS] 네트워크 / python
·
코딩테스트/programmers (python)
코딩테스트 연습 - 네트워크 | 프로그래머스 스쿨 (programmers.co.kr) 나의 풀이 . 모범 답안 DFS 풀이 def solution(n, computers): answer = 0 visited = [0 for i in range(n)] def dfs(computers, visited, start): stack = [start] while stack: j = stack.pop() if visited[j] == 0: visited[j] = 1 for i in range(0, len(computers)): if computers[j][i] ==1 and visited[i] == 0: stack.append(i) i=0 while 0 in visited: if visited[i] ==0: dfs(..