알고리즘/프로그래머스 29

[프로그래머스 | Lv2] k진수에서 소수 개수 구하기 (Python) - 2022 KAKAO BLIND RECRUITMENT

https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr n을 k진수로 변환하고(n이 0이 될 때까지 k로 나눈다.), 0을 포함하지 않는 수만 분리하여(split('0')) 소수인지 판별해주면 된다. 처음엔 findPrime에서 반복문의 범위를 (2, num//2)로 설정해줬었는데, tc1에서 시간 초과가 났다. 그래서 범위를 다시 (2, 제곱근+1)로 설정해줬다. # 프로그래머스 92335: k진수에서 소수 개수 구하기 (2022 KAKAO BLIN..

[프로그래머스 | Lv2] 주차 요금 계산 (Python) - 2022 KAKAO BLIND RECRUITMENT

https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 자체를 생각하는건 쉬웠으나.. 문자열 처리가 까다로운 문제였다. 먼저 딕셔너리에 {차량 번호: 시간(시:분 리스트)}으로 저장하고, 반복문을 통해 딕셔너리를 순회하면서 누적 주차 시간을 계산해줬다. time 변수는 각 입차/출차에 대한 시간이고, total 변수는 누적 주차 시간이다. time에 딕셔너리에 저장되어 있는 시간을 두개씩 짝지어서 시간을 계산해주고, 이를 total에 더했다...

[프로그래머스 | Lv2] 택배 배달과 수거하기 (Python) - 2023 KAKAO BLIND RECRUITMENT

https://school.programmers.co.kr/learn/courses/30/lessons/150369 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr d_temp, p_temp 변수를 만들어주고 집을 끝에서부터 돌면서 택배를 배달/수거하는 대로 값을 증가시켰다. 두 변수가 cap보다 크다면 for문을 멈추고 n값을 갱신하여 다시 반복문을 돌도록 해주었다. # 실패 # 프로그래머스 150369: 택배 배달과 수거하기 (2023 KAKAO BLIND RECRUITMENT) def solution(cap, n, deliveries, pickups)..

[프로그래머스 | Lv2] 두 큐 합 같게 만들기 (Python) - 2022 KAKAO TECH INTERNSHIP

https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 두 큐의 합을 2로 나눈 값이 홀수이면 바로 -1을 리턴한다. (두 큐의 합을 같게 만들 수 없다.) 두 큐의 합을 2로 나눈 값을 target으로 설정해주고, 큐1의 합을 left로 설정해준다. 그 후 반복문을 돌면서 left target이면 반대로 큐1에서 원소를 꺼내 큐2에 넣어주고, left == target이면 그대..

[프로그래머스 | Lv2] 이모티콘 할인행사 (Python) - 2023 KAKAO BLIND RECRUITMENT

https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 완전탐색을 이용해서 풀었다. 중복순열을 이용해서 할인 가짓수를 먼저 계산해주고, 반복문을 통해 각각 users를 순회하면서 가격 >= 구매액이면 플러스 가입자를 늘리고, 가격 < 구매액이면 판매액을 늘려 조건에 맞는 최댓값을 리턴해주면 된다. # 프로그래머스 150368: 이모티콘 할인행사 (2023 KAKAO BLIND RECRUITMENT) from itertools import produc..

[프로그래머스 | Lv2] 롤케이크 자르기 (Python)

https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음에 단순하게 푼 코드 차례대로 리스트를 나누면서 set으로 만들어 길이를 비교했다. # 프로그래머스 132265: 롤케이크 자르기 def solution(topping): answer = 0 s = round(len(set(topping)) // 2) for i in range(s, len(topping)-s+1): if len(set(topping[:i])) == len(set(toppin..

[프로그래머스 | Lv2] 마법의 엘리베이터 (Python)

https://school.programmers.co.kr/learn/courses/30/lessons/148653 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 가볍게 생각했다가 스트레스 받아서 죽을 뻔 함ㅠㅋㅋㅋㅋㅋㅋㅋㅋㅋ 갈 길이 멀다... 첫 시도 -> 테케 다 맞아서 오!! 했는데 채점 결과 두 문제 맞힘;; 두 번째 시도 -> 테케도 이것저것 추가하고 다 맞아서 기대했는데 또 틀림. 세 번째 시도 -> 게시판 탐색 후 "5"를 기준으로 답이 달라진다는걸 캐치. 근데 또 틀림. 네 번째 시도 -> 일의 자리를 탐색하고 있을 때를 생각 못했다는 걸..

[프로그래머스 | Lv2] 이진 변환 반복하기 (Python)

https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 프로그래머스 70129: 이진 변환 반복하기 def solution(s): d = 0 t = 0 while s != '1': d += s.count('0') x = s.count('1') temp = '' while x != 1: temp = str(x % 2) + temp x //= 2 temp = '1' + temp t += 1 s = temp return [t, d] 멍청하게 이진법 풀고..

[프로그래머스 | Lv2] 귤 고르기 (Python)

https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 프로그래머스 138476: 귤 고르기 def solution(k, tangerine): dic = {} for i in tangerine: try: dic[i] += 1 except: dic[i] = 1 dic = dict(sorted(dic.items(), key=lambda x:x[1])) n = len(tangerine) - k cnt = len(dic) i = 0 for key in ..

[프로그래머스 | Lv1] 실패율 (Python) - 2019 KAKAO BLIND RECRUITMENT

https://school.programmers.co.kr/learn/courses/30/lessons/42889 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음엔 for문을 돌리면서 도달과 클리어 개수를 하나하나 세서 계산했다. 하지만 한 문제에서 시간 초과가 떴고, 다시 문제를 보면서 규칙을 찾아냈다. 각 스테이지에 도달한 플레이어의 수는 전 스테이지를 클리어한 플레이어 수와 같고, 어차피 위의 과정에서 도달하지 못한 플레어어의 수는 걸러지기 때문에 스테이지에 도달했지만 클리어하지 못한 플레이어의 수는 stages에서 해당 숫자(+1)의 count..