코딩테스트 연습
-
[2021 KAKAO BLIND RECRUITMENT] 신규 아이디 추천코딩테스트 연습 2024. 1. 4. 11:46
10:48 시작, 11:39 정답! 문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/72410?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 def solution(new_id): answer = '' # 1단계 new_id = new_id.lower() # 2단계 not_available = [i for i in '~!@#$%^&*()=+[{]}:?,/'] for s in new_id: if s not in not_available: answer+..
-
[2021 카카오 채용연계형 인턴십] 숫자 문자열과 영단어코딩테스트 연습 2023. 12. 26. 12:08
11:33 시작, 11:48 끝 문제 설명 s 문자열(영어, 숫자 조합)이 들어오면 영어로 된 부분을 숫자로 바꿔서 return을 해야한다. 제한사항 입출력 예 및 설명 문제 풀이 def solution(s): answer = 0 dict1={'zero':'0', 'one':'1', 'two':'2', 'three':'3', 'four':'4', 'five':'5', 'six':'6', 'seven':'7','eight':'8', 'nine':'9'} keys = list(dict1.keys()) idx = 0 for _ in range(len(dict1)): s = s.replace(keys[idx], dict1[keys[idx]]) idx+=1 answer = int(s) return answer 코..
-
콜라 문제코딩테스트 연습 2023. 12. 20. 10:40
1. 문제 설명 2. 제한사항, 입출력 예 및 설명 3. 문제 풀이 # 빈 병 a개를 가져갔을 때 b개 병으로 교환해줌. (교환 비율로 생각하기) def solution(a, b, n): answer = 0 while True: q = n//a # 안 빈 병 수(n)를 교환 시 필요한 빈 병 수(a)로 나눴을 때의 몫 구하기 res = n - (a*q) # 안 빈 병 수에서 교환하고 남은 병 수(res) 구하기 n = (q*b) + res # 교환 받은 병 수(q*b)를 위에서 구한 res와 더해서 새롭게 '가지고 있는 병 수'를 만들어줌 answer += (q*b) # 총 교환 받은 병 수를 구하기 위해 계속 q*b를 더해줌 if n < a: # 만약, 내가 지금 가지고 있는 병 수가 a보다 작으면 b..
-
푸드 파이트 대회코딩테스트 연습 2023. 12. 12. 11:10
문제 설명 제한사항 입출력 예 및 설명 문제 풀이 def solution(food): answer = '' n = 1 # 음식 순서 for f in food[1:]: # food[0]은 물의 양이라고 했으니까 food의 1번 원소부터가 음식의 양. quotient = f//2 # 1번 음식의 양(f)를 2(대결하는 사람 수)로 나눴을 때의 몫 answer += str(n)*quotient # 1번 음식이 몫만큼 반복됨. n+=1 # 음식의 순서를 1증가 # ↓ 음식의 배치(answer)를 0과 answer를 반대로 만든 배치(대결상대의 음식의 배치)를 합해준다. answer = answer + '0' + answer[::-1] return answer 코드 설명 ※ 문제 풀이 코드 블럭 참고. food[..
-
햄버거 만들기코딩테스트 연습 2023. 12. 7. 11:52
문제 설명 제한사항 입출력 예 및 설명 문제 풀이1. def solution(ingredient): answer = 0 order = [1,2,3,1] i = 0 while i < len(ingredient) - 3: if ingredient[i:i+4] == order: answer += 1 del ingredient[i:i+4] i = 0 else: i += 1 return answer 코드 설명 i가 len(ingredient)-3 보다 작을 때 반복문 실행 ingredient를 돌면서 부분 리스트(i:i+4 부분)가 order와 같은지 확인. 만약 같다면 answer에 1을 더해주고, 해당 부분 리스트를 원래 ingredient 에서 지워준다(del). 그리고 i를 다시 0으로 만든다. (부분 리..
-
숫자 변환하기코딩테스트 연습 2023. 12. 4. 13:29
문제 설명 제한사항 입출력 예 및 설명 문제 풀이 방법이 생각이 나지를 않아서 다른 분의 코드(블로그로 이동)를 참고했다. def solution(x, y, n): answer = 0 dp = set() dp.add(x) poss = False # x로 y를 만들어줄 수 있으면 True로 바꿔줄 거임. while dp: if y in dp: # y가 dp안에 있다 -> poss를 True poss = True break dp_new = set() # 꼭 새 저장변수를 만들어서 사용해야함. (아래에 설명 자세히) for i in dp: # dp에 있는 수에 x2, x3, +n 모든 연산을 해서 새 숫자를 만듦. if i+n
-
뒤에 있는 큰 수 찾기코딩테스트 연습 2023. 11. 29. 13:19
문제 설명 제한사항 입출력 예 및 설명 문제 풀이1 def solution(numbers): answer = [] for i, n in enumerate(numbers): index = 1 check = True if (i == len(numbers)-1): answer.append(-1) break else: while check: if i+index == len(numbers): answer.append(-1) break if numbers[i] < numbers[i+index]: answer.append(numbers[i+index]) check = False else: index += 1 return answer 채점결과1 제한사항에서 numbers의 길이가 1,000,000 이하라고 했으니까 최..