프로그래머스 44

[programmers] 예상 대진표

https://programmers.co.kr/learn/courses/30/lessons/12985# 코딩테스트 연습 - 예상 대진표 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N programmers.co.kr 접근 방법 n은 2의 지수승이니까 n/2를 기준으로 a와 b가 왼쪽이냐 오른쪽이냐 구하고, 다른 쪽에 있다면 그 번호가 몇 번이든 2**answer == n 인 answer만큼 무조건 비교해야 한다고 생각. 예를 들어, n=16이고 a가 1~8이고, b가 9~16 사이의 값이라면 무조건 4번은 비교. 마찬가지로, n=16이고 a가 1~..

Python/CoTe 2022.03.14

[programmers] 카펫

https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 막막하다면 우선 예시 입출력으로 그림이나 과정을 정리해보자! -> 카펫은 테두리가 브라운인 직사각형 또는 정사각형 모양이다. -> yellow로 만들 수 있는 카펫 모양을 알아야 전체 카펫의 가로, 세로 길이를 알 수 있다. -> yellow의 약수를 구하자! -> yellow의 약수 조합 중에서 테두리 길이를 구했을 때, 주어진 brown과 같으면 retu..

Python/CoTe 2022.03.13

[programmers] 영어 끝말잇기

https://programmers.co.kr/learn/courses/30/lessons/12981 코딩테스트 연습 - 영어 끝말잇기 3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3] 5 ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] [0,0] programmers.co.kr 주어진 제한 사항과 조건만 잘 생각해보면 쉽게 풀 수 있는 문제 def solutio..

Python/CoTe 2022.03.12

[programmers] 땅따먹기

https://programmers.co.kr/learn/courses/30/lessons/12913# 코딩테스트 연습 - 땅따먹기 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟 programmers.co.kr 모든 행에 대해서 가장 최대값을 찾아 더해가는 방법으로 생각하면, 같은 열에 대해서 더하는 값을 제외하니까 조합으로 했을 때는 항상 그 방법이 맞는 것은 아니다. 이 문제는 더했을 때의 조합의 최댓값을 구하는 것이므로, Dynamic programming 을 해야한다. 원래 코드 #dynamic programming def solution(..

Python/CoTe 2022.03.10

[programmers] 다음 큰 숫자

https://programmers.co.kr/learn/courses/30/lessons/12911 코딩테스트 연습 - 다음 큰 숫자 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니 programmers.co.kr def solution(n): answer = 0 bin_n = bin(n) count_n = bin_n[2:].count('1') for i in range(n+1,1000000): bin_i = bin(i) count_i = bin_i[2:].count('1') if count_i == count_n: return i bin ..

Python/CoTe 2022.03.09

[programmers] 전화번호 목록

https://programmers.co.kr/learn/courses/30/lessons/42577# 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 처음 코드 def solution(phone_book): answer = True for i in range(len(phone_book)): for j in range(len(phone_book)): if i == j: continue else: len_ = len(phone_book[i]) if phone_book[i] in phone_book[j][0:..

Python/CoTe 2022.03.06

[programmers] 기능 개발

https://programmers.co.kr/learn/courses/30/lessons/42586# 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr from collections import deque def solution(progresses, speeds): answer = [] day = [0 for i in range(len(speeds))] for i, (p, s) in enumerate(zip(progresses, speeds)): while p = 100: day..

Python/CoTe 2022.03.04
728x90