전체보기
-
프로그래머스 / 과일 장수코딩 테스트/Level 1 2022. 11. 10. 22:19
https://school.programmers.co.kr/learn/courses/30/lessons/135808 파이썬 for 문을 이용. def solution(k, m, score): score.sort(reverse=True) return sum(score[index] * m for index in range(m - 1, len(score), m)) slice를 이용. def solution(k, m, score): return sum(sorted(score, reverse=True)[m - 1:: m]) * m 코틀린 class Solution { fun solution(k: Int, m: Int, score: IntArray): Int { val sortedScore = score.sorte..
-
야간 전술보행코딩 테스트/Level 2 2022. 11. 9. 22:44
https://school.programmers.co.kr/learn/courses/30/lessons/133501 문제에 오류가 있어 프로그래머스에 수정을 요청했다. 잘못된 보기를 고치랬더니 문제를 억지스럽게 수정했다. 경비병은 1초 후에 감시를 시작한다라... ㅎㅎㅎ solution = lambda distance, scopes, times: result[0] if (result := [index for scope, time in sorted(zip(scopes, times)) for index in range(min(scope), max(scope) + 1) if (index - 1) % sum(time) < time[0]]) else distance 약간 억지스러운 부분도 있지만 한줄로 코딩하기 ..
-
우박수열 정적분코딩 테스트/Level 2 2022. 11. 9. 21:04
https://school.programmers.co.kr/learn/courses/30/lessons/134239 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(k, ranges): points = [k] while k != 1: if k % 2 == 0: k //= 2 else: k = 3 * k + 1 points.append(k) return [-1 if a > (c := len(points) + b - 1) else sum((points[i] + points[i + 1]) / 2 for i in range(a, c)) fo..
-
택배상자코딩 테스트/Level 2 2022. 11. 9. 18:27
https://school.programmers.co.kr/learn/courses/30/lessons/131704 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 간단하게 스택으로 처리하기 위해 order의 방향을 바꿈... 변화를 체크하기 위해 change 변수를 사용.. 문제를 그대로 코드로... def solution(order): belt = list(range(len(order), 0, -1)) order.reverse() sub_belt = [] truck = [] change = True while change: change = False i..
-
혼자 놀기의 달인코딩 테스트/Level 2 2022. 11. 8. 23:15
https://school.programmers.co.kr/learn/courses/30/lessons/131130 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 그대로 코드화 하면 답을 구할 수 있는 문제.. 박스를 딕셔너리로 구현. def solution(cards): boxes = {index + 1: card for index, card in enumerate(cards)} groups = [] while boxes: visited = set() pos = list(boxes.keys())[0] while pos not in visited:..
-
롤케이크 자르기코딩 테스트/Level 2 2022. 11. 8. 18:59
https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 시간 제한 def solution(topping): return sum(1 for i in range(1, len(topping)) if len(set(topping[:i])) == len(set(topping[i:]))) def solution(topping): passed1, passed2 = set(), set() check1, check2 = [], [] for each in toppin..
-
저주의 숫자 3코딩 테스트/Level 0 2022. 11. 8. 17:27
https://school.programmers.co.kr/learn/courses/30/lessons/120871 파이썬 def solution(n): answer = 0 for _ in range(n): answer += 1 while answer % 3 == 0 or '3' in str(answer): answer += 1 return answer 코틀린 class Solution { fun solution(n: Int): Int { var answer = 0 (0 until n).forEach { _ -> answer++ while (answer % 3 == 0 || '3' in answer.toString()) answer++ } return answer } }
-
최빈값 구하기코딩 테스트/Level 0 2022. 11. 8. 17:05
https://school.programmers.co.kr/learn/courses/30/lessons/120812 파이썬 3가지 방법으로 풀어보겠습니다. 1. 리스트 기본적인 스타일로 코드를 작성한다면.. (max함수를 한 번 쓰긴 했지만) def solution(array): times_list = [0] * (max(array) + 1) # 리스트의 주소는 num, 원소는 num의 반복 횟수 for num in array: times_list[num] += 1 # num이 나올 때 마다 1 증가 mode = -1 # 최빈값은 영어로 mode mode_times = 0 # 최빈값의 횟수 second_times = 0 # 최빈값이 1회 이상 나올 때, 그 횟수를 기록할 변수 for index, time..