목록프로그래머스 (32)
이숭간 공부기록
https://programmers.co.kr/learn/courses/30/lessons/17680?language=python3#
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 문제유형 : 행렬, 구현 문제풀이 : 2021 카카오페이인턴에서도 이런 행렬구현 문제가나왔다. 행렬의 부분을 따로빼서 조작하고 다시 붙인뒤 반복조작하는 느낌 카카오공채 '자물쇠와 열쇠' 코드도 딱 이런 느낌이다. 쿼리에 맞춰서 부분그래프를 빼낸다음 뺸 부분을 규칙에 맞게 테두리만 회전시킨다. 회전시킨 그래프를 다시 원래그래프에 넣는다. 쿼리가 ..
https://programmers.co.kr/learn/courses/30/lessons/12985 코딩테스트 연습 - 예상 대진표 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N programmers.co.kr 문제유형 : 분할정복? 문제풀이 : 내가 속해있는 팀을 구한다. 걔와 나는 언제 만나는가? --> 서로 같은 팀이 될때 만난다. 두 사람이 같은 팀에 속해질때 까지 팀구하기를 반복한다. 정답코드: def solution(n,a,b): answer = 0 x = min(a,b) y = max(a,b) while True: answer +=..
https://programmers.co.kr/learn/courses/30/lessons/42885# 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 문제유형 : 그리디, 투포인터 문제풀이 : 가능한 최대한 많이 담아서 보내야하므로 그리디 나는 큐를 이용해서 풀었다. ( 투포인터 느낌 ) 내림차순 정렬한 큐에서 왼쪽, 즉 가장 큰값부터 (popleft) 보트에 태우고, 더이상 큰값을 태울수 없을때 큐의 오른쪽, 즉 가장 작은값부터(pop) 보트에 태워서 한번 보낼때 가장큰애들과 가..
https://programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 문제유형 : DP 문제풀이 : 특정 좌표가 웅덩이에 포함되어있는지 확인할때 주어진 좌표는 행,열이 바뀌어잇기때문에 i,j가 아니라 j,i로 확인해줘야했다. 점화식 : S[i][j] = S[i-1][j] + S[j-1][i] 이때 j,i가 puddles에 포함되어있다면 위 점화식을 수행하지 않고 0으로 바꿔주고 넘어간다. 정답코드 : def soluti..
https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 문제유형 : 스택 문제풀이 : 정답코드(파이썬): from collections import defaultdict def solution(progresses, speeds): answer = [] daycount = defaultdict(int) # progresses가 빌때까지 100이 안넘을때만 시간을 1씩 증가시키면서 더해준다. # 더해가면서 맨앞의..