728x90

Python 90

[programmers] 점프와 순간이동

https://programmers.co.kr/learn/courses/30/lessons/12980 코딩테스트 연습 - 점프와 순간 이동 OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈 programmers.co.kr 접근법 건전지 사용을 줄이기 위해서 x2를 할 수 있으면 하는게 좋다! -> n부터 나누기 2를 해서 나머지가 0이면 순간이동을 하고 -> 나누기 2를 해서 나머지가 1인 경우에만 1칸씩 이동하여 1만큼 건전지를 사용한다. 즉, 2로 나누어 떨어지지 않는 경우(그림에서는 노란색 표시)만 count 하자! def solution(n): an..

Python/CoTe 2022.03.21

[programmers] 구명보트

https://programmers.co.kr/learn/courses/30/lessons/42885# 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 접근법 주의 사항: 정렬한 다음에 최솟값부터 더하는 방식으로 하면 항상 최소 구명보트 이용을 만족하지 못한다. 반례 [80,90,20,30,40,50,60], 100 이 주어졌을 때, 최솟값을 더하는 방식으로 하면 20,30,40/50/60/80/90 -> 총 5개의 구명 보트를 써야 한다. 그러나 실제로 최소 구명 보트는 20,80..

Python/CoTe 2022.03.20

[programmers] 삼각 달팽이

https://programmers.co.kr/learn/courses/30/lessons/68645 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr 알 것 같지만 쉽게 생각하기 어려웠던 문제! 접근법 1. 삼각형을 이용해야 한다. 삼각형이니까 3번씩 반복되는 형태 임을 파악하자 -> 처음 위에서 아래로 숫자를 입력하고(0번 방향), 왼쪽에서 오른쪽으로 숫자 입력(1번 방향), 아래에서 위로 숫자 입력(2번 방향)이 삼각형이 다 채워질때까지 반복된다. 2. 이러한 과정은 그림에서 알 수 있듯이 n번만큼 반복됨을 발견..

Python/CoTe 2022.03.20

[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/87946# 코딩테스트 연습 - 피로도 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던 programmers.co.kr 처음에는 쉽게 구할 수 있는 방법이 있지 않을까 했다. 예를 들어, 필요한 피로도와 소모하게 되는 피로도의 차가 가장 큰 값부터 방문하는 방식으로 -> 반 정도 실패(반은 가능하다는게 오히려 놀라움) ※빼박 완전 탐색이다. 순서까지 중요한 순열 문제! from itertools import permutations def solution(k, dungeo..

Python/CoTe 2022.03.13

[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/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 어려운 문제는 아니지만 효율성이 중요한 문제이다. 문자열의 길이 : 1,000,000이하의 자연수 첫 번째 코드 def solution(s): while True: for i in range(len(s)-1): if s[i] != s[i+1]: continue else: s.pop(i) s.pop(i) break else: break return 1..

Python/CoTe 2022.03.12

[programmers] 뉴스 클러스터링 - Counter

https://programmers.co.kr/learn/courses/30/lessons/17677# 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 첫 코드 from collections import Counter def solution(str1, str2): string1, string2 = [] ,[] string = ['a','b','c','d','e','f','g','h','i','j','k','l','m', 'n','o','p','q','r','s','t','u','v','w..

Python/CoTe 2022.03.12

[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/42626# 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr heapq 를 써야하는 문제라는 걸 알면 쉽게 풀린다. heapq 문제임을 어떻게 알까? 1. 매번 리스트에서 가장 작은 숫자 2개를 꺼내오고 식으로 새롭게 만들어진 숫자를 append 해야한다. 2. 새로운 숫자가 append 되면 정렬해야한다. -> 리스트의 모든 원소가 K 이상이거나 더 이상 K이상을 만들 수 없을 때 종료 조건까지 무한 반복..

Python/CoTe 2022.03.10
728x90