728x90
반응형
SMALL
Programmers 레벨 0_코딩테스트 입문 문제 풀이
https://school.programmers.co.kr/learn/challenges/beginner?
코딩테스트 입문 | 프로그래머스 스쿨
코딩테스트에 처음 도전하는 사람들을 위한 입문 문제 모음. 쉬운 문제부터 하나씩 도전해 보면서 코딩테스트에 자신감도 붙이고 문제 해결 능력을 키워보세요!
school.programmers.co.kr
풀이 날짜 : 2023-09-22
문제 수 : 60
소요 시간 : 4hour 25min (문제 풀기, 블로그 작성, 다른 풀이 탐색 등)
반응형
1. 사칙연산 - 두 수의 합, 차, 곱, 몫 구하기
def solution(num1, num2):
return num1+num2 # 합
return num1-num2 # 차
return num1*num2 # 곱
return num1//num2 # 몫
2. 사칙 연산, 조건문, 배열
# 나눗셈
def solution(num1, num2) :
return int((num1/num2)*1000)
# 숫자 비교하기
def solution(num1, num2) :
return 1 if num1 == num2 else -1
# 배열 두 배 만들기
def solution(numbers):
return [i*2 for i in numbers]
3. 나머지 구하기, 짝수는 싫어요
# 나머지 구하기
def solution(num1, num2) :
return num1%num2
# 짝수는 싫어요
def solution(n):
return [i for i in range(1, n+1, 2)]
4. 피자 나눠먹기
# 피자 나눠먹기 1. 모든 사람이 한 조각 씩 먹을 수 있는 최소 피자 개수 (조각 7)
import math
def solution(n):
return math.ceil(n/7)
def solution(n):
return (n - 1) // 7 + 1
# 피자 나눠먹기 2. 모두 같은 수의 피자를 먹을 수 있는 최소 피자 개수 (조각 6)
def solution(n):
return [i for i in range(1, n*6+1) if (i*6) % n == 0][0]
# 피자 나눠먹기 3. 같은 피자를 나눠 먹을 수 있는 최소 피자 개수 (조각 지정)
def solution(slice, n):
return (n - 1) // slice + 1
5. 문제 모음
# 배열의 평균값
def solution(numbers):
return sum(numbers) / len(numbers)
# 옷가게 할인받기
def solution(price):
return int(price*0.8) if price >= 500000 else(int(price*0.9) if price >= 300000 else (int(price*0.95) if price >= 100000 else price))
# 아이스 아메리카노
def solution(money):
return [money//5500, money%5500]
def solution(money):
return divmod(money, 5500)
# 나이 출력
def solution(age):
return 2022-age+1
# 배열 뒤집기
def solution(num_list):
return num_list[::-1]
# 문자열 뒤집기
def solution(my_string):
return my_string[::-1]
6. 문제 모음 2
# 직각 삼각형 출력하기
n = int(input())
for i in range(1, n+1) :
print('*' * i)
print('\n'.join('*' * (i + 1) for i in range(int(input()))))
# 짝수 홀수 개수
def solution(num_list):
odd = [i for i in num_list if i & 1]
return [len(num_list)-len(odd), len(odd)]
# 문자 반복 출력
def solution(my_string, n):
return "".join(i*n for i in my_string)
# 특정 문자 제거
def solution(my_string, letter):
return my_string.replace(letter, '')
# 각도기
def solution(angle):
if 0 < angle < 90 :
return 1
elif angle == 90 :
return 2
elif 90 < angle < 180 :
return 3
elif angle == 180 :
return 4
def solution(angle):
answer = (angle // 90) * 2 + (angle % 90 > 0) * 1
return answer
# 양꼬치
def solution(n, k):
return n*12000 + (k - (n//10)) * 2000
7. 문제 모음 3
# 짝수의 합
def solution(n):
return sum(i for i in range(n+1) if i%2 == 0)
# 배열 자르기
def solution(numbers, num1, num2):
return numbers[num1:num2+1]
# 외계행성의 나이
def solution(age):
return "".join([chr(int(i)+97) for i in str(age)])
# 순서쌍의 개수
def solution(n):
return len([i for i in range(1, n+1) if n%i == 0])
# 개미 군단
def solution(hp):
return hp//5 + (hp%5)//3 + ((hp%5)%3)
8. 모스 부호
# 모스부호 (1)
def solution(letter):
morse = {
'.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f',
'--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l',
'--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r',
'...':'s','-':'t','..-':'u','...-':'v','.--':'w','-..-':'x',
'-.--':'y','--..':'z'
}
return "".join([morse.get(i) for i in letter.split(' ')])
#
9. 딕셔너리 문제 모음
# 가위바위보
def solution(rsp):
win = {'2':'0', '0':'5', '5':'2'}
return "".join([win.get(i) for i in rsp])
# 중복된 문자열 제거
def solution(my_string):
answer = []
for i in my_string :
if i not in answer :
answer.append(i)
return "".join(answer)
def solution(my_string):
return ''.join(dict.fromkeys(my_string))
10. 2차원 배열 문제 모음
# 점의 위치 구하기
def solution(dot):
if dot[0] > 0 and dot[1] > 0 : return 1
elif dot[0] < 0 and dot[1] > 0 : return 2
elif dot[0] < 0 and dot[1] < 0 : return 3
else : return 4
def solution(dot):
quad = [(3,2),(4,1)]
return quad[dot[0] > 0][dot[1] > 0]
11. 배열 문제 모음
# 배열 회전시키기
def solution(numbers, direction):
return [numbers[-1]] + numbers[:-1] if direction == 'right' else numbers[1:] + [numbers[0]]
# 문자열 정렬하기 (1)
def solution(my_string):
return sorted([int(i) for i in my_string if not i.islower()])
# 문자열 정렬하기 (2)
def solution(my_string):
return "".join(sorted(my_string.lower()))
# 배열 원소의 길이
def solution(strlist):
return [len(i) for i in strlist]
# n의 배수 고르기
def solution(n, numlist):
return [i for i in numlist if i % n == 0]
12. 문제 모음 4
# 주사위의 개수
def solution(box, n):
return (box[0] // n) * (box[1] // n) * (box[2] // n)
# 최댓값 만들기 (1)
def solution(numbers):
return sorted(numbers)[-1] * sorted(numbers)[-2]
# 최댓값 만들기 (2)
def solution(numbers):
return max([numbers[i]*numbers[j] for i in range(len(numbers)) for j in range(len(numbers)) if i != j])
def solution(numbers):
numbers = sorted(numbers)
return max(numbers[0] * numbers[1], numbers[-1]*numbers[-2])
# 모음 제거
def solution(my_string):
return "".join(i for i in my_string if i not in 'aeiou')
# A로 B 만들기
def solution(before, after):
return int(sorted(before) == sorted(after))
# 삼각형의 완성 조건 (1)
def solution(sides):
return 1 if sum(sides)-max(sides) > max(sides) else 2
# 369 게임
def solution(order):
return len([i for i in str(order) if i in '369'])
# 암호 해독
def solution(cipher, code):
return cipher[code-1::code]
# 대문자와 소문자
def solution(my_string):
return my_string.swapcase()
13. 문제 모음 5
# 숨어있는 숫자의 덧셈 (1)
def solution(my_string):
return sum([int(i) for i in my_string if i.isdigit()])
# 숨어있는 숫자의 덧셈 (2)
def solution(my_string):
answer = "".join([' ' if i.isalpha() else i for i in my_string])
return sum([int(i) for i in answer.split()])
# 컨트롤 제트
def solution(s):
answer = 0
for i, num in enumerate(s.split()) :
if num == 'Z' :
answer -= int(s.split()[i-1])
else :
answer += int(num)
return answer
# 편지
def solution(message):
return len(message)*2
# 가장 큰 수 찾기
def solution(array):
return [max(array), array.index(max(array))]
# 배열의 유사도
def solution(s1, s2):
return len([0 for s in s1 if s in s2])
def solution(s1, s2):
return len(set(s1)&set(s2));
# 숫자 찾기
def solution(num, k):
num = [n for n in str(num)]
return num.index(str(k))+1 if str(k) in num else -1
def solution(num, k):
return -1 if str(k) not in str(num) else str(num).find(str(k)) + 1
14. 인덱스 바꾸기
def solution(my_string, num1, num2):
answer = []
for i, s in enumerate(my_string) :
if i == num1 :
answer.append(my_string[num2])
elif i == num2 :
answer.append(my_string[num1])
else :
answer.append(s)
return "".join(answer)
def solution(my_string, num1, num2):
s = list(my_string)
s[num1],s[num2] = s[num2],s[num1]
return ''.join(s)
15. 문제 모음 6
# 자릿수 더하기
def solution(n):
return sum(int(i) for i in str(n))
# 문자열 안에 문자열
def solution(str1, str2):
return 1 if str2 in str1 else 2
# 제곱수 판별하기
def solution(n):
return 1 + int((n**0.5) % 1 != 0)
# 중복된 숫자 개수
def solution(array, n):
return len([i for i in array if i == n])
# 머쓱이보다 키 큰 사람
def solution(array, height):
return sum(1 for i in array if i > height)
# 중앙값 구하기
def solution(array):
return sorted(array)[int(len(array)/2)]
16. 세균 증식
def solution(n, t):
for i in range(1, t+1) :
n *= 2
return n
def solution(n, t):
return n << t
def solution(n, t):
return n*(2**t)
728x90
반응형
LIST
'Coding Study > Programmers (Python)' 카테고리의 다른 글
[프로그래머스/파이썬] Lv.0 2차원으로 만들기 (8') (0) | 2023.09.26 |
---|---|
[프로그래머스/파이썬] Lv.0 코딩테스트 입문 (수학 관련 문제) (0) | 2023.09.26 |
[프로그래머스/파이썬] Lv.0 이차원 배열 대각선 순회하기 (11') (0) | 2023.09.21 |
[프로그래머스/파이썬] Lv.0 정사각형으로 만들기 (16') (0) | 2023.09.21 |
[프로그래머스/파이썬] Lv.0 특별한 이차원 배열 2 (8') (0) | 2023.09.21 |