본문 바로가기

Algorithm/programmers72

[파이썬]programmers: 가장 큰 수 https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정렬문제 두번째 예제에서 30 과 3의 위치를 변경해야 하는데, 이는 문자열을 *3하여 순서를 맞춰주면 된다 '333' > '303030' def solution(numbers): answer = '' for i in range(len(numbers)): numbers[i] = str(numbers[i]) numbers.sort(key=lambda x: x*3, reverse=True) for i.. 2023. 2. 20.
[파이썬]programmers: 더 맵게 https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr heap 문제 import heapq def solution(scoville, K): answer = 0 heapq.heapify(scoville) while scoville[0] 1: answer +=1 first = heapq.heappop(scoville) second = heapq.heappop(scoville) heapq.heappush(scoville, first + second*2) .. 2023. 2. 20.
[파이썬]programmers: 위장 https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 스파이가 옷을 입을 수 있는 경우를 구하는 문제 딕셔너리 안에 key와 value로 넣은 후, 경우의 수를 구하면 된다! def solution(clothes): answer = 1 dic = {} for i in range(len(clothes)): if clothes[i][1] not in dic: dic[clothes[i][1]] = [clothes[i][0]] else: dic[clothe.. 2023. 1. 16.
[파이썬]programmers: 전화번호 목록 https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에서 주어진 효율성 테스트가 빡빡함.. 우선 sort를 하여 문자열을 나열하고 (['34', '111', '1113', '1116'] ==> ['111', '1113', '1116', '34']) 길이로 먼저 걸러 주어야 효율성 테스트에서 성공할 수 있음. 안그러면 효율성 테스트 3,4번이 떨어지더라.. def solution(phone_book): answer = True phone_book.. 2023. 1. 15.
[파이썬]programmers: 거리두기 확인하기 https://school.programmers.co.kr/learn/courses/30/lessons/81302 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 응시자(P)들의 맨허튼 거리두기가 옳게 되었는지 알아보는 문제. bfs를 이용하여 문제를 풀었으며, 맨허튼 거리는 2이하까지만 된다는 점을 이용하여 현 P의 위치에서 거리두기 위치내에 P가 있는지 없는지를 확인하며 풀었다. bfs 인자로, P의 y,x,0을 받았고 거리마다 +1된 인자를 넣어 유효한 거리인지 검사하였다. def solution(places): # bfs코드##############.. 2022. 12. 26.
[파이썬]불행한 수 모 회사의 코테시험을 보는중, 문제가 잘 안풀려서 혼자 기억을 더듬고 풀어보았다. 문제 내용은, 4와 13을 가지고 만들수 있는 수가 있습니다. 이를 불행한 수 라고 정의하는데, 불행한 수를 오름차순으로 나열시키시오. ex) S = {4, 13, 44, 134, 413, 444, 1313...} 대략 이런 문제로, N이 주어지면 N번째 숫자를 return하는 문제였던거같다. 위 문제를 풀기위해 내가 쓴 로직 적고 보니, 규칙성이 생겼다. 이를 구현해낸 내용 def solution(n): arr = [4,13] cnt4 = 0 cnt13 = 0 st = 1 while 1: for i in range(cnt4, cnt4+st): arr.append(str(arr[0]) + str(arr[i])) cnt4 +.. 2022. 12. 12.