일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Queue
- 조합
- import re
- mysql
- time complexity
- 시간복잡도
- 프로그래머스
- join
- 완전탐색
- python
- sql
- CodingTest
- counter
- 코테
- 연습문제
- 데이터분석
- lv4
- BFS
- coding test
- level4
- programmers
- 코딩
- itertools
- collections
- Stack
- 코딩테스트
- 파이썬
- coding
- lambda
- Level2
- Today
- Total
목록coding test (45)
ror_coding
datetime 을 이용하여 시간 차이 '분'을 구하는 방법과 요구하는 길이만큼 멜로디를 늘려 풀기 ! Question 네오는 자신이 기억한 멜로디를 가지고 방금그곡을 이용해 음악을 찾는다. 그런데 라디오 방송에서는 한 음악을 반복해서 재생할 때도 있어서 네오가 기억하고 있는 멜로디는 음악 끝부분과 처음 부분이 이어서 재생된 멜로디일 수도 있다. 반대로, 한 음악을 중간에 끊을 경우 원본 음악에는 네오가 기억한 멜로디가 들어있다 해도 그 곡이 네오가 들은 곡이 아닐 수도 있다. 그렇기 때문에 네오는 기억한 멜로디를 재생 시간과 제공된 악보를 직접 보면서 비교하려고 한다. 다음과 같은 가정을 할 때 네오가 찾으려는 음악의 제목을 구하여라.방금그곡 서비스에서는 음악 제목, 재생이 시작되고 끝난 시각, 악보를..
특수한 경우를 인지하고 대처하기 ! Question 마법의 돌을 아끼기 위해 민수는 항상 최소한의 버튼을 눌러서 이동하려고 합니다. 민수가 어떤 층에서 엘리베이터를 타고 0층으로 내려가는데 필요한 마법의 돌의 최소 개수를 알고 싶습니다. 민수와 마법의 엘리베이터가 있는 층을 나타내는 정수 storey 가 주어졌을 때, 0층으로 가기 위해 필요한 마법의 돌의 최소값을 return 하도록 solution 함수를 완성하세요.제한사항1 ≤ storey ≤ 100,000,000 Point r 이 5일 때 10의 자리를 보며 경우의 수를 다시 나눠야 함. Code def solution(storey): cnt = 0 while storey : storey, r = storey//10, sto..
sum(list or queue)를 사용하면 시간복잡도가 높아지기 때문에 total 변수를 사용한다. Question 비내림차순으로 정렬된 수열이 주어질 때, 다음 조건을 만족하는 부분 수열을 찾으려고 합니다. 기존 수열에서 임의의 두 인덱스의 원소와 그 사이의 원소를 모두 포함하는 부분 수열이어야 합니다. 부분 수열의 합은 k입니다. 합이 k인 부분 수열이 여러 개인 경우 길이가 짧은 수열을 찾습니다. 길이가 짧은 수열이 여러 개인 경우 앞쪽(시작 인덱스가 작은)에 나오는 수열을 찾습니다. 수열을 나타내는 정수 배열 sequence와 부분 수열의 합을 나타내는 정수 k가 매개변수로 주어질 때, 위 조건을 만족하는 부분 수열의 시작 인덱스와 마지막 인덱스를 배열에 담아 return 하는 solution ..
lstrip과 lambda x : x*3 이용하기 ! 제한 사항을 잘 읽고 활용하여 풀자. Question 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요.예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다.0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 1,000 이하입니다. 정답이 너무 클 수 있으..
shift와 XOR 문제.. 짝수일 때는 binary 값의 맨 우측이 0이라서 +1만 하면 되지만 홀수일 때 여러 bin 값이 바뀌기 때문에 이를 고려해야 한다. Question 정수들이 담긴 배열 numbers가 매개변수로 주어집니다. numbers의 모든 수들에 대하여 각 수의 f 값을 배열에 차례대로 담아 return 하도록 solution 함수를 완성해주세요. Point서로 다른 지점이 2개 이하여야 함.따라서 num ^ (num+1) 해준 값을 right shift 2칸 해줌.(만약 서로 다른 지점이 1개라면 right shift 1칸 해줌) 왜 `num`과 `num + 1`을 비교하는가? `num + 1`은 `num`보다 큰 가장 작은 숫자임. 이를 비교하면, 비트를 최소한으로 변경하면서 크기..
내 첫 DP 문제.. 문제를 읽고 dp 로 풀 수 있다는 패턴을 알아내야 한다!홀/짝일 경우로 나눠서 연산하는 과정으로 풀었는데 테케가 틀리게 된다. 따라서 dp로 풀기. Question 직사각형의 가로의 길이 n이 매개변수로 주어질 때, 이 직사각형을 채우는 방법의 수를 return 하는 solution 함수를 완성해주세요.제한사항가로의 길이 n은 60,000이하의 자연수 입니다.경우의 수가 많아 질 수 있으므로, 경우의 수를 1,000,000,007으로 나눈 나머지를 return해주세요. Point 부분 문제로 나눌 수 있는가 ? 중복 계산이 발생하는가? => 위 두 조건이 True이기 때문에 이 문제는 dp로 해결한다. Code (After) def solution(n): n1, n2 = 0..
set()을 이용해서 중복은 자동으로 안 겹치게 하기.list로 풀었는데 이 방법이 더 좋은 것 같다 ! Question 명령어가 매개변수 dirs로 주어질 때, 게임 캐릭터가 처음 걸어본 길의 길이를 구하여 return 하는 solution 함수를 완성해 주세요. Code def solution(dirs): x, y, paths = 0, 0, set() ways = {'U':[0,1], 'D':[0,-1], 'L':[-1,0], 'R':[1,0]} for i in dirs: dx = x + ways[i][0] dy = y + ways[i][1] if ((-5 now meOn my github
나누기해서 round()를 사용하지 않고 (a+1)//2 처럼 반올림과 같은 효과를 내기. Question 처음 라운드에서 A번을 가진 참가자는 경쟁자로 생각하는 B번 참가자와 몇 번째 라운드에서 만나는지 궁금해졌습니다. 게임 참가자 수 N, 참가자 번호 A, 경쟁자 번호 B가 함수 solution의 매개변수로 주어질 때, 처음 라운드에서 A번을 가진 참가자는 경쟁자로 생각하는 B번 참가자와 몇 번째 라운드에서 만나는지 return 하는 solution 함수를 완성해 주세요. 단, A번 참가자와 B번 참가자는 서로 붙게 되기 전까지 항상 이긴다고 가정합니다. Code def solution(n,a,b): rnd = 0 while b!=a: rnd += 1 a,b = ..