PYTHON
-
[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. 19. 12:14
문제 설명 제한사항, 입출력 예 및 설명 문제 풀이 def solution(number, limit, power): answer = 0 cnt_list = [] for n in range(1, number+1): set1 = set() i = 1 # 약수 구하기 while True: res = n % i if res == 0: set1.add(i) set1.add(n//i) i += 1 if i in set1: break if i > n : break # 약수 개수 구하기 cnt = len(set1) cnt_list.append(cnt) # 약수 개수가 limit을 초과하면 power로 바꿔주기 for i, c in enumerate(cnt_list): if c > limit: cnt_list[i] = ..
-
뒤에 있는 큰 수 찾기코딩테스트 연습 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 이하라고 했으니까 최..
-
옹알이 (2)코딩테스트 연습 2023. 11. 18. 10:44
내가 생각한 방식으로 풀려고 하니까 for문이 너무 많이 중첩된다.. 그래서 다른 사람 풀이를 참고를 해봤다. 일단 옹알이 (1) 코드를 확인을 해봤고, 옹알이 (2) 에서는 추가 조건이 있기 때문에 그건 옹알이 (1) 코드에 내가 추가를 하는 걸로! 문제 설명 제한사항 입출력 예 및 설명 문제 풀이 def solution(babbling): answer = 0 # 연속은 불가 옹알이list = ["aya", "ye", "woo", "ma"] for word in babbling: # 만들고 싶은 단어 check=True # 옹알이로 단어를 완성할 수 있는지 확인하는 변수. 단어 완성할 수 없다면 False로 넣어줄 예정 for 옹알이 in 옹알이list: # ↓ 옹알이를 연속해서 사용할 수 없기 때문에..
-
문자열 나누기코딩테스트 연습 2023. 11. 17. 11:38
문제 설명 제한사항 입출력 예 및 설명 내 풀이 def solution(s): answer = 0 true, false = 0,0 # s의 첫번째 문자열과 같으면 true, 다르면 false first_str = s[0] # s의 첫번째 문자열 for i, string in enumerate(s): if first_str == string: # s의 첫번째 문자열과 같으면 true에 1 증가 true += 1 else: # s의 첫번째 문자열과 다르면 false에 1 증가 false += 1 if true == false: # true와 false가 같다면(분리 조건) answer += 1 # 분리된 문자열 개수 1증가 true, false = 0,0 # true, false 초기화 if i == len..