Loading...
2021. 8. 24. 02:21

[Python] 프로그래머스 - 자물쇠와 열쇠

https://programmers.co.kr/learn/courses/30/lessons/60059# 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr # 몇시간동안 헤매다 겨우 풀었다.. # 삼성기출에 자주나오는 유형과 같이 구현, 시뮬레이션 문제인데 2차원배열을 회전시키는 건 처음이어서 오래걸린 것 같다. # M과 N이 20이하이기 때문에, 모든 key배열과 lock배열을 돌며 하나하나 검사해도 될 것이라 생각했다. rotate함수를 통해 key배열을 돌려주면서 lock의 모든 좌표에 끼워주면서 check함수를 통해 모든 자물쇠의 홈이 끼워졌는지 확인하면..

[Python] 프로그래머스 - Weekly Challenge 2주차

https://programmers.co.kr/learn/courses/30/lessons/83201 코딩테스트 연습 - 2주차 [[100,90,98,88,65],[50,45,99,85,77],[47,88,95,80,67],[61,57,100,80,65],[24,90,94,75,65]] "FBABD" [[70,49,90],[68,50,38],[73,31,100]] "CFD" programmers.co.kr # 저번주부터 매주마다 한 문제씩 공개되는 weekly challenge이다. 이번 주 문제는 저번 주보다는 어려웠지만, 단순 구현문제였다. 1. 학생들이 받은 점수는 가로 값을 보는 것이 아니라 세로값을 봐야 하므로 2중 for문에서 scores[j][i]로 s에 append해주었다. 2. 자기 자신..

[Python] 프로그래머스 - 거리두기 확인하기

https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr # 최근 5월 "2021 카카오 채용연계형 인턴십" 코딩테스트에 출제된 따끈따끈한 문제이다..

2021. 6. 2. 00:11

[Python] 프로그래머스 - 단속카메라

https://programmers.co.kr/learn/courses/30/lessons/42884 코딩테스트 연습 - 단속카메라 [[-20,15], [-14,-5], [-18,-13], [-5,-3]] 2 programmers.co.kr # 그리디문제이다. def solution(routes): # routes를 나간시간 순으로 오름차순 정렬 routes.sort(key = lambda x: x[1]) answer = 1 # camera = 현재 카메라가 설치된 위치 camera = routes[0][1] # 두번째 차량부터 마지막번째 차량까지 반복문을 돌며 현재 카메라가 설치된 시간보다 # 들어온 시간이 늦으면 camera에 현재 차량의 나간시간을 넣어주고 answer 1증가 for i in ran..

[Python] 프로그래머스 - 섬 연결하기

https://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 # 문제를 보자마자 최소 스패닝 트리(Minimum Spanning Tree)가 떠올랐다. # 크루스칼 알고리즘으로 MST를 짰다. def solution(n, costs): answer = 0 # Union-Find함수 def find(c): if par[c] == c: return c else: par[c] = find(par[c]) return par[c] def union(a, b): a, b = find(a), find(b) par[max(a, b)]..

[Python] 프로그래머스 - 도둑질

https://programmers.co.kr/learn/courses/30/lessons/42897 코딩테스트 연습 - 도둑질 도둑이 어느 마을을 털 계획을 하고 있습니다. 이 마을의 모든 집들은 아래 그림과 같이 동그랗게 배치되어 있습니다. 각 집들은 서로 인접한 집들과 방범장치가 연결되어 있기 때문에 인접한 programmers.co.kr # 5단계 문제라서 손을 안대고 있었는데, 내가 생각했던 '5단계'의 난이도는 아니었다.. # 16~20줄에서 dp테이블을 갱신하는 원리는 다음과 같다. i번째 집을 털 때 최댓값(dp[i])은 아래 두가지 케이스 중 큰 값이다. 1. (i-2)번째 집을 털고 현재 i번째 집을 터는경우 (dp[i-2] + money[i]) 2. i번째 집을 턴 경우(현재 i번째 ..

[Python] 프로그래머스 - 가장 큰 수

https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr # 조건을 제대로 읽지 않아 엄청 어렵게 생각했던 문제이다. 처음에 정렬하는 방법은 제대로 생각했다. (가장 큰 숫자의 자리수에 맞춰 나머지 숫자들의 자리수를 맞춘다음 정렬하는 것) # 여기서 numbers의 원소가 0이상 1000이하라고 되어있는데, 이걸 읽지 않아서 가장 일일이 가장 큰 숫자의 ..

[Python] 프로그래머스 - n진수 게임

https://programmers.co.kr/learn/courses/30/lessons/17687 코딩테스트 연습 - [3차] n진수 게임 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0 programmers.co.kr 2018 카카오 블라인드 코딩테스트에 출제된 문제이다. # 이 문제를 풀기위한 keyPoint는 다음과 같다. 1. convert함수를 통해 원하는 수를 원하는 진법으로 변경해줘야 한다. 2. 마지막 answer를 출력할땐 튜브의 차례에 해당하는 수만 뽑아낼 수 있어야 한다. # 20번째 줄에서 l이 10만 이상일때 break해주는 이유: t가 ..