목록 code review (147)
KEEP GOING

https://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 1. 구현 위처럼 각 배열에서 인형들의 열 정보는 moves에 저장되어 있지만 인형이 들어있는 행 정보에 대한 배열이 없어 rows 라는 배열로 관리해주었다. 예를 들어, moves 배열에 3이라는 값이 들어있다면 3번째 위치인 idx 기준으로 2인 열을 탐색할텐데, 0이 들어있지 않은 행을 0부터 n-1까지 (board의 크기 n) 찾아봐야 한다. 한 번 등장하면 그냥 for문으로 0이..

https://programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 난이도 1인데 되게 많은 고민을 해야 했던 문제였다 : lost, reserve 배열에서 제거 3. i-1, i+1번 학생이 모두 체육복을 도난 당한 경우, 여벌이 있는 i번째 학생은 i-1번 학생에게 체육복을 빌려준다. (그리디) i+1번 학생은 뒤 학생이 빌려줄 수도 있지만 (i+2번 학생이 체육복이 있는 경우) i-1번 학생은 그렇지 않아서.. [정답코드] ..
https://programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr [풀이] def findK(D): K = 1 while K 0: if D >= K: tmp.append(1) D -= K else: tmp.append(0) K >>= 1 while len(tmp) != N: tmp.insert(0, 0) return tmp def solution(n, arr1, arr2): global N N = n answer = [..
https://programmers.co.kr/learn/courses/30/lessons/17682 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr def solution(dartResult): arr = [] for idx, dart in enumerate(dartResult): # '*', '#'이 아닌 문자라면 if 65

https://www.acmicpc.net/problem/1783 1783번: 병든 나이트 첫째 줄에 체스판의 세로 길이 N와 가로 길이 M이 주어진다. N과 M은 2,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net n, m = map(int, input().split()) if n == 1: print(1) elif n == 2: print(min(4, (m+1)//2)) else: if m < 7: print(min(4, m)) else: print(m-2) 힌트) 행을 기준으로 조건을 나눈다. ex. 행이 1일때, 2일때, 2 이상일때... 코드는 간단하나 이해하는데 어려움이 많았던 풀이 n = 1인 경우 이런 상태이기 때문에 나이트는 어느 방향으로도 움직이지 못한다...
https://www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가 www.acmicpc.net import heapq V, E = map(int, input().split()) k = int(input()) graph = [[] for _ in range(V+1)] distance = [1e9 for _ in range(V+1)] for _ in range(E): u, v, w = map(int, input().split()) graph[u].appen..
https://programmers.co.kr/learn/courses/30/lessons/12930# 코딩테스트 연습 - 이상한 문자 만들기 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 programmers.co.kr 문제 힌트 : 입력값이 'hello '인 경우 (마지막에 공백 포함) 출력값 'HeLlO ' (공백 포함) 문제의 테스트케이스는 소문자 문자열으로 주어짐 ex "try hello world" 모든 문자열에 대해서는 홀수 짝수를 나누어 짝수일 때는 문자를 소문자 처리 코드 구현) def solution(s): answer = [] split_s = ..
https://programmers.co.kr/learn/courses/30/lessons/68935 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr 코드 구현 def solution(n): answer = 0 num = '' while n > 0: num = str(n % 3) + num n //= 3 num = num.strip('0') i = 0 while i < len(num): answer += int(num[i])*(3**i) i += 1 return ..