전체보기
-
야간 전술보행코딩 테스트/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..
-
OX퀴즈코딩 테스트/Level 0 2022. 11. 8. 16:44
https://school.programmers.co.kr/learn/courses/30/lessons/120907 파이썬 문자열의 split 메소드를 이용하자. q.split()은 q.split(' ')과 같다. 기능별로 함수를 분리했다. def test(q): temp = q.split() if temp[1] == '+': return int(temp[0]) + int(temp[2]) == int(temp[4]) else: return int(temp[0]) - int(temp[2]) == int(temp[4]) def solution(quiz): answer = [] for each in quiz: if test(each): answer.append('O') else: answer.append('X..