목록코딩테스트 (25)
0과 1 사이
https://programmers.co.kr/learn/courses/30/lessons/77485 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr def solution(rows, columns, queries): answer = [] matrix = [[i+m*columns for i in range(1, columns+1)] for m in range(rows)] for q in queries: x1, y1, x2, y2 = q[0]-1, q[1]-1, q[2]-1, q[3]-1 tm..
https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr def solution(lottos, win_nums): answer = [] count = 0 #맞힌 숫자 개수 count_0 = 0 #지워진 숫자 개수 #맞힌 개수 별 로또 순위 win = {0:6, 1:6, 2:5, 3:4, 4:3, 5:2, 6:1} for l in lottos: if l == 0: count..
https://programmers.co.kr/learn/courses/30/lessons/77487 한참 헤맸다.. 쉬운 것 같은데 GROUP BY 하면 모든 쿼리가 나오지 않고 묶여서 나오고, 그래서 COUNT OVER PARTITION BY를 했더니 윈도우 함수라 where이나 having 조건을 걸수가 없었다 알고보니 서브쿼리를 이용하는 문제였다 SELECT * FROM PLACES WHERE HOST_ID IN( SELECT HOST_ID FROM PLACES GROUP BY HOST_ID HAVING COUNT(HOST_ID) >= 2) ORDER BY ID
오랜만에 다이나믹 프로그래밍 엇! 답이 맞는줄 알았는데 잘보니 틀리다. won[i]는 i원을 만들 수 있는 코인의 최소 개수를 저장해야하는데, 아래의 경우... 최소 개수를 저장하지 않는다는 문제가 있다. 초기화할때 -1로 모두 저장해버려서 최소값을 저장하게 되면 그냥 -1이 저장되기 때문이다.. import sys n, m = map(int, sys.stdin.readline().rstrip().split()) coin = [] coin.sort() for _ in range(n): coin.append(int(sys.stdin.readline().rstrip())) won = [-1] * (m+1) for i in coin: if i
https://programmers.co.kr/learn/courses/30/lessons/92344 코딩테스트 연습 - 파괴되지 않은 건물 [[5,5,5,5,5],[5,5,5,5,5],[5,5,5,5,5],[5,5,5,5,5]] [[1,0,0,3,4,4],[1,2,0,2,3,2],[2,1,0,3,1,2],[1,0,1,3,3,1]] 10 [[1,2,3],[4,5,6],[7,8,9]] [[1,1,1,2,2,4],[1,0,0,1,1,2],[2,2,0,2,0,100]] 6 programmers.co.kr 이 문제.. 구현은 간단한데 효율성 통과하기가 정말 어렵다. 남은 3문제중에 그나마 간단한 것 같아서 도전했으나 .. 한시간동안 고민해도 해결방법을 찾지 못함.. 정확도는 모두 통과했다. 그러고나서 효율성을 ..
https://programmers.co.kr/learn/courses/30/lessons/92342 코딩테스트 연습 - 양궁대회 문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원 programmers.co.kr 가장 문제였던 양궁 문제.... 분명 열심히 풀었는데 10개 테스트케이스에서 5개만 통과함. 주어진 테스트1과 테스트3도 통과하지 못했다. 조건 하나를 깜빡했다. 어피치와 라이언이 같은 개수의 화살을 맞힌 경우 어피치가 점수를 가져간다. 이 조건을 빼먹음.. 코드 수정하니까 테스트케이스 23번만 통과하지 못했다. 그런데 answer과 real_answer라는 배열을 ..
https://programmers.co.kr/learn/courses/30/lessons/92341 코딩테스트 연습 - 주차 요금 계산 [180, 5000, 10, 600] ["05:34 5961 IN", "06:00 0000 IN", "06:34 0000 OUT", "07:59 5961 OUT", "07:59 0148 IN", "18:59 0000 IN", "19:09 0148 OUT", "22:59 5961 IN", "23:00 5961 OUT"] [14600, 34400, 5000] programmers.co.kr 풀었지만 복잡하게 푼 문제.. 조금 간단히 풀 방법을 찾아봐야겠다. 처음 작성한 코드 from datetime import datetime def solution(fees, record..
https://programmers.co.kr/learn/courses/30/lessons/92335 코딩테스트 연습 - k진수에서 소수 개수 구하기 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소 programmers.co.kr 이 문제는 옛날에 소수 판별 알고리즘을 구현했던 것이 기억나서 쉽게 풀었다. import math def change(n, k): #k 진수로 변환. 결과는 string string = '' q, r = divmod(n, k) if q == 0 : return string + str(r) else : retur..