공부 기록
[Python] 코딩테스트 준비하기 (하루 10문제) 본문
프로그래머스의 코딩테스트 문제를 풀어보며
까먹었던 부분들과 미흡한 부분 향상을 위함
Lv.0 Python3
[PCCE 기출문제] 1번 / 문자 출력
Q. 아래와 같이 출력되도록 코드를 완성하여함. 단, 빈칸을 제외한 기본 코드는 수정할 수 없음
message = 'Let's go!'
print("3\n2\n1")
print(message
해당 문제는 '\n'과 같은 특수 문자를 아는지 확인하기 위한 목적으로 제출된 문제로 생각됨
문자 | 설명 |
\n | 출력에서 줄바꿈 |
\t | 출력에서 tab 간격으로 띄어쓰기 |
\\ | print시 출력에 백슬래시(\)이 출력되도록함 |
\' | print시 출력에 '(작은따옴표)가 출력되도록함 |
\" | print시 출력에 "(큰따옴표)가 출력되도록함 |
[PCCE 기출문제] 2번 / 각도 합치기
Q. 0<= angle1 <= 5000 과 0<= angle2 <= 5000 라는 두 변수의 합을 0-360도 사이의 값으로 출력할것
#1줄만 수정하여야함
angle1 = int(input())
angle2 = int(input())
sum_angle = angle1 + angle2
print(sum_angle % 360)
해당 문제는 연산자를 아는지 확인하기 위한 목적으로 제출된 문제로 추정됨
연산자 | 기호 | 예시 | 결과 |
덧셈 | + | 3+4 | 7 |
뺄셈 | - | 3-1 | 2 |
나눗셈(목) | // | 3//2 | 1 |
나눗셈 | / | 3/2 | 1,5 |
나머지 | % | 3%2 | 1 |
곱셈 | * | 3*4 | 12 |
거듭제곱 | ** | 3**2 | 9 |
이 외 연산자는 아래 링크 참고
https://m.post.naver.com/viewer/postView.naver?volumeNo=33231827&memberNo=1085064
[Python] 파이썬 코딩 5일차(파이썬 기초 연산자 뿌시기 + 주요 연산자 표)
[BY 영진닷컴] 식의 구조를 안다Python에서는 여러 처리를 「계산」해서 하는 경우가 있습니다. 이 포스팅...
m.post.naver.com
[PCCE 기출문제] 3번 / 수 나누기
Q. 2자리 이상의 정수 number의 2자리씩 자른 뒤, 자른 수를 모두 더해서 그 합을 구하는 코드
#1줄만 수정 가능
number = int(input())
answer = 0
for i in range(len(str(number))//2 +1): #기존에는 for i in range(1)
answer += number % 100
number //= 100
print(answer)
number의 길이를 str로 구해서 2자리씩 자르고 12345와 같이 길이가 홀수 인 경우 누락되는 값이 없도록 +1을 해줬지만
다른사람 풀이를 봤을때
while number > 0: 과 같이 계산량도 적고 간단한 방법이 있는걸 보면
python의 반복문에 대한 지식 확인을 위한 문제였을 가능성이 있다
while문과 for문에 관한 설명은 아래 링크 참고
파이썬을 배워보자 9일차 - 반복문(while, for)
점프 투 파이썬 : https://wikidocs.net/book/1파이썬 기본을 갈고 닦자 : https://wikidocs.net/16031보통 대부분의 언어가 반복문으로 for, while이 있다. (go는 for문만 있다) 파이썬 역시도 for
velog.io
[PCCE 기출문제] 4번 / 병과분류
Q. 마지막 네 글자가 특정 조건에 따라 출력하도록 빈칸 채우기
code = input()
last_four_words = code[-4:]
if last_four_words == "_eye":
print("Ophthalmologyc")
elif last_four_words == "head":
print("Neurosurgery")
elif last_four_words == "infl":
print("Orthopedics")
elif last_four_words == "skin":
print("Dermatology")
else:
print("direct recommendation")
if문과 관련된 python이 가능한지 확인하는 문제
[PCCE 기출문제] 5번 / 심폐소생술
Q. 문자열들이 무작위 순서로 담긴 리스트 cpr가 가각 어느 순서로 수행해야지 출력하도록 빈칸채우기
def solution(cpr):
answer = []
basic_order = ["check", "call", "pressure", "respiration", "repeat"]
for action in cpr:
for i in range(len(basic_order)):
if action == basic_order[i]:
answer.append(i+1)
return answer
for 문에서 'range'의 사용과 'in 리스트형 변수'의 동작 방식을 아는지 확인하기 위한 문제로 추정
[PCCE 기출문제] 6번 / 물 부족
Q. 물의 양을 나타내는 정수 storage와 지난 달 물 사용량을 나타내는 정수 usage, 월별 물 사용량이 전 달 대비 어떻게 변하는지 저장된 정수 리스트 change가 주어질 때 몇 달 뒤 물이 부족해지는지 return 가뭄이 끝날때 까지 저수지의 물이 남아 있다면 -1을 return
def solution(storage, usage, change):
total_usage = 0
for i in range(len(change)):
usage = usage + usage * change[i]/100 # usage = total_usage * change[i]/100
total_usage += usage
if total_usage > storage:
return i
return -1
[PCCE 기출문제] 6번 / 물 부족
Q. 다음 출력이 이뤄지도록 빈칸 채우기
string_msg = "Spring is beginning" #string_msg = 빈칸
int_val = 3 # int_val = 빈칸
string_val = "3" # string_val = 빈칸
print(string_msg)
print(int_val + 10)
print(string_val + "10")
숫자간 덧셈, 문자간 뎃셈 같은 동작 원리를 아는지 확인
[PCCE 기출문제] 2번 / 피타고라스의 정리
Q. 직각삼각형의 한 변의 길이를 나타내는 정수 a와 빗변의 길이를 나타내는 정수 c가 주어질 때, 다른 한 변의 길이의 제곱, b_square 을 출력하도록 한 줄을 수정해 코드를 완성
#1줄만 수정
a = int(input())
c = int(input())
b_square = c**2 - a**2 #b_square = c - a
print(b_square)
python 연산자 아는지 확인하는 문제
[PCCE 기출문제] 8번 / 닉네임 규칙
Q. 주어진 조건을 만족하여 입력된 nickname에 대해 처리해서 출력하도록 코드 수정
def solution(nickname):
answer = ""
for letter in nickname:
if letter == "l":
answer += "I"
elif letter == "w":
answer += "vv"
elif letter == "W":
answer += "VV"
elif letter == "O":
answer += "0"
else:
answer += letter
while len(answer) < 4: # if len(answer) < 3:
answer += "o"
if len(answer) > 8:
answer = answer[:8]
return answer
다른 사람 풀이를 봤을 때 if문을 수정하지 않고 아래와 같은 방법도 있었음
answer = f'{answer:o<4}'
-> 위 방식은 python 'f-string'을 사용한 방법으로 문자열 앞에 f를 붙여 출력하고 싶은 변수나 조건 같은걸 {} 안에 넣어 출력하도록함
여기서 ":"는 포맷팅 규칙으로 answer를 왼쪽 정렬해서 최소 4까지 너비까지 빈 공간을 o으로 채우라는 것
만약 여기서 <가 아니라 >였으면 오른쪽 정렬임.
즉, {변수명:채울문자 정렬방식 최소 너비} 순으로 정렬 방식은 <나 > 로 나타내서 왼쪽정렬과 오른쪽 정렬을 의미하는 것
answer = answer.ljust(4, 'o')
위 방식은 ljust(n, '')의 형태로 문자열을 왼쪽으로 n만큼 정렬하고 빈칸은 ''의 문자로 채워 넣는다
유사한 방식으론 rjust(n,'')이 있으며, 이는 오론쪽 정렬을 의미한다
answer += 'o' * (4 - len(answer))
answer += "o"*abs(len(answer)-4)
위 2개의 방법은 문자열 곱하기를 사용함
answer = (answer + "oooo")[:4]
4개까지만 출력하면 되는 것을 이용한 방법
[PCCE 기출문제] 7번 / 버스
Q. 주어진 solution함수는 버스의 좌석 개수 seat, 기점에서 출발한 버스가 순서대로 방문한 정거장에서 승객이 승/하차한 정보를 담은 2차원 문자열 리스트 passengers가 주어질 때, 버스에 남아있는 좌석의 개수를 return 하는 함수입니다. solution 함수가 올바르게 작동하도록 빈칸을 채워 solution함수를 완성
def func1(num):
if 0 > num:
return 0
else:
return num
def func2(num):
if num > 0:
return 0
else:
return num
def func3(station):
num = 0
for people in station:
if people == "Off":
num += 1
return num
def func4(station):
num = 0
for people in station:
if people == "On":
num += 1
return num
def solution(seat, passengers):
num_passenger = 0
for station in passengers:
num_passenger += func4(station) # num_passenger += func 빈칸
num_passenger -= func3(station) # num_passenger -= func 빈칸
answer = func1(seat-num_passenger) #answer = func 빈칸
return answer
def 별 다른 것들을 구분해서 적절하게 사용 가능한지를 목적으로 출제했을 것으로 추정
'다양한 분야 공부 기록 > Python Coding Test' 카테고리의 다른 글
Level 1 위주로 풀어보기 (0) | 2025.01.30 |
---|---|
Level 1도 풀어보기 (0) | 2025.01.29 |
코테 연습기 (0) | 2025.01.28 |
다시 코테 준비하기 (0) | 2025.01.27 |
[Python] 퇴근 후 5문제만 풀어보기 (0) | 2024.12.31 |