Python/CoTe 70

[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

[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/49994# 코딩테스트 연습 - 방문 길이 programmers.co.kr def solution(dirs): dir_info = {'L':(-1,0), 'U':(0,1), 'D':(0,-1), 'R':(1,0)} x,y = 0,0 count = 0 done = [] for di in dirs: nx,ny = dir_info[di] x += nx y += ny if -5 시작과 도착 좌표의 방향성은 무의미하다 3. 즉 움직이기 전 좌표값과 움직인 후 좌표값을 순서 상관 없이 done 리스트에 넣어준다.

Python/CoTe 2022.03.09
728x90