Engineering WIKI/Programmers
-
[프로그래머스] 더 맵게Engineering WIKI/Programmers 2022. 6. 4. 08:38
코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr heapq 모듈 사용법 [파이썬] heapq 모듈 사용법 Engineering Blog by Dale Seo www.daleseo.com heap = [4, 1, 7, 3, 8, 5] heapq.heapify(heap) print(heap) [1, 3, 5, 4, 8, 7] heapify() 함수에 리스트를 인자로 넘기면 리스트 내부의 원소들의 위에서 다룬 힙 구조에 맞게 재배치되며 최소값이 0번째 인덱스에 위치됩니다. 즉, 비어있는 리스트를 생성한..
-
[프로그래머스] 영어 끝말잇기Engineering WIKI/Programmers 2022. 6. 1. 09:05
코딩테스트 연습 - 영어 끝말잇기 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 내 풀이 1차시도 실패 def solution(n, words): answer = [] word_list = list() last_word = list() order = 0 rotatio..
-
[프로그래머스] 가장 큰 정사각형Engineering WIKI/Programmers 2022. 6. 1. 08:17
코딩테스트 연습 - 가장 큰 정사각형 찾기 [[0,1,1,1],[1,1,1,1],[1,1,1,1],[0,0,1,0]] 9 programmers.co.kr 핵심 다른 사람 풀이 def solution(board): n = len(board) m = len(board[0]) # dp 준비 dp = [[0] * m for _ in range(n)] dp[0] = board[0] for i in range(1, n): dp[i][0] = board[i][0] # 2중 포문으로 연산 for i in range(1, n): for j in range(1, m): if board[i][j] == 1: dp[i][j] = min(dp[i-1][j-1], dp[i-1][j], dp[i][j-1]) + 1 # 최대 넓이 ..
-
[프로그래머스] 구명보트Engineering WIKI/Programmers 2022. 5. 31. 18:49
코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr people을 정렬한 다음, 가장 몸무게가 큰 사람과 가장 작은 사람을 더해 limit값과 비교한 다음, 작으면 둘 다 태우고 크면 가장 큰 사람만 태운다. 다른 사람 풀이 def solution(people, limit): answer = 0 people.sort() start, end = 0, len(people) - 1 while start
-
[프로그래머스] [1차] 캐시Engineering WIKI/Programmers 2022. 5. 30. 16:45
코딩테스트 연습 - [1차] 캐시3 ["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "Jeju", "Pangyo", "Seoul", "NewYork", "LA"] 50 3 ["Jeju", "Pangyo", "Seoul", "Jeju", "Pangyo", "Seoul", "Jeju", "Pangyo", "Seoul"] 21 2 ["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "SanFrancisco", "Seoul", "Roprogrammers.co.kr내 풀이def solution(cacheSize, cities): answer = 0 cache_list = list() for city in cities: ..
-
[프로그래머스] 땅따먹기Engineering WIKI/Programmers 2022. 5. 26. 14:24
코딩테스트 연습 - 땅따먹기 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟 programmers.co.kr 내 풀이 1차시도 실패 def solution(land_list): answer = 0 index = -1 for land in land_list: if index != land.index(max(land)): answer += max(land) else: land.remove(max(land)) answer += max(land) index = land.index(max(land)) return answer DP를 이용하는 문제이다. 맨 위..
-
[프로그래머스] 다음 큰 숫자Engineering WIKI/Programmers 2022. 5. 25. 16:58
코딩테스트 연습 - 다음 큰 숫자 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니 programmers.co.kr 내 풀이 def solution(n): bin_n = format(n, 'b') count_one = bin_n.count('1') big_num = n + 1 while True: bin_big_num = format(big_num, 'b') if bin_big_num.count('1') == count_one: break big_num += 1 return big_num
-
[프로그래머스] 올바른 괄호Engineering WIKI/Programmers 2022. 5. 24. 20:07
코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 programmers.co.kr 내풀이 1차 (실패) def solution(s): answer = True open_tag = "(" close_tag = ")" check_word = [] open_tag_count = 0 close_tag_count = 0 for word in s: check_word.append(word) if word == open_tag: open_tag_count += 1 if word == close_tag: clos..