본문 바로가기
python

[CodeUp] Python 기초 100제 6001~6031 풀이 해설

by Devinus 2021. 2. 25.

CodeUp 알고리즘 문제 6001번~6031번 문제의 답입니다.

찾는 문제 번호를 Ctrl + F 단축키로 검색을 하시면 더 빠르게 찾을 수 있습니다. (형식: # + 문제번호, 예시: #6001)

 

문제의 답이 이해가 되지 않는경우 댓글을 남겨주시면 이해를 돕기 위한 답변을 달아드립니다.

제 답이 최선의 정답 코드가 아닐 수도 있습니다. 더 나은 코드가 있다면 댓글로 알려주세요.

Python 기초 100제 다른 번호 문제 풀이 확인하기

# #basic output
#6001
print('Hello')
#6002
print('Hello World')
#6003
print('Hello')
print('World')
#6004
print("'Hello'")
#6005
print('''"Hello World"''')
#6006
print('"!@#$%^&*()\'')
#6007
print('''"C:\\Download\\\'hello'.py"''')
#6008
print('''print("Hello\\nWorld")''')

# #basic input
#6009
print(input())
#6010 #print(input())
print(int(input()))
#6011 #print(input())
print(float(input()))
#6012
a = int(input())
b = int(input())
print(a)
print(b)
#6013
a = input()
b = input()
print('{b}\n{a}'.format(b=b, a=a))
#6014
a = float(input())
for i in range(3):
    print(a)
#6015
a, b = input().split()
print('{}\n{}'.format(int(a), int(b)))
#6016
a, b = input().split()
print('{} {}'.format(b, a))
#6017
s = input()
print(s,s,s)
#6018
print(time[0]+':'+time[1])
#6019
date = input().split('.')
date.reverse()
print('-'.join(date))
#6020
print(''.join(input().split('-')))
#6021
s = input()
for i in s:
    print(i)
#6022
date = input()
print(date[:2] + ' ' + date[2:4] + ' ' + date[4:])
#6023
date = input().split(':')
print(date[1])
#6024
a, b = input().split()
s = a + b
print(s)
#6025
a, b = input().split()
print('{}'.format(int(a)+int(b)))
#6026
a = float(input())
b = float(input())
print('{}'.format(a + b))
#6027
print('%x'%int(input()))
#6028
print('%x'.upper()%int(input()))
#6029
print('%o'%int(input(), 16))
#6030
print(ord(input()))
#6031
print(chr(int(input())))

주목할 만한 python 문법

 

1. 값 입력받기 - input()

파이썬에서 값을 입력받을 때는 input() 메서드를 사용하는데 input() 메서드는 입력받은 값을 문자열로 리턴하기 때문에 숫자를 입력받기 위해서는 아래와 같은 형식으로 작성해줘야 한다.

# 정수 입력받기
n = int(input())
# 실수 입력받기
n = float(input())

 

2. 문자열 포매팅 - % 대입, format(), f-string

파이썬에서 문자열에 변수 값을 출력하는 방법은 다양하다.

 

2.1. % 대입

% 대입은 문자열에 값을 대입하는 방법인데, c언어에서 값을 포맷하는 방식과 유사하다.

아래는 % 대입을 이용한 간단한 값 출력 예시이다.

#정수형 숫자를 바로 대입
print('ten: %d' %10)
#정수형 변수를 대입
n = 10
print('ten: %d' %n)

python IDLE에서 실행한 결과

2개 이상의 값을 대입할 경우

a = 10
b = 20
print('%d + %d = %d' %(a, b, a+b))

python IDLE에서 실행한 결과

우측 정렬과 공백

a = 10
b = 20
# 우측으로 3자리를 차지하며 남는 부분은 공백으로 채우기
print('%3d + %3d = %3d' %(a, b, a+b))
# 우측으로 3자리를 차지하며 남는 부분은 0으로 채우기
print('%03d + %03d = %03d' %(a, b, a+b))

python IDLE에서 실행한 결과

좌측 정렬과 공백

a = 10
b = 20
# 좌측으로 3자리를 차지하며 남는 부분은 공백으로 채우기
print('%-3d + %-3d = %-3d' %(a, b, a+b))

python IDLE에서 실행한 결과

% 대입에 사용할 수 있는 문자열 포맷 코드는 아래와 같다.

코드 설명
%s 문자열(string)
%c 문자 1개(character)
%d 정수(integer)
%f 부동소수(floating-point)
%o 8진수
%x 16진수
%% Literal % (문자로서 % 자체를 표현)

 

2.2. format() 메서드

format() 메서드는 문자열 안에 변수를 대입하기 편하게 해주는 메서드이다.

아래는 정수형 변수를 대입하는 예시다.

a = 10
b = 20

# 자동 인덱싱, {}안에 인덱스를 입력하지 않을 경우 앞자리부터 0, 1, 2 순서로 자동 인덱싱된다.
print('{} + {} = {}'.format(a, b, a+b))

# 지정 인덱싱, {}안에 인덱스를 입력해 각 위치에 넣을 값 순서를 정해줄 수 있다.
print('{0} + {1} = {2}'.format(a, b, a+b))
print('{1} + {0} = {2}'.format(a, b, a+b))

python IDLE에서 실행한 결과

{0}, {1}과 같은 숫자 인덱싱 방법 대신 {number}, {name}같이 키, 값 방법도 사용할 수 있다.

# {0}, {1}과 같은 숫자 인덱싱 방법 대신 {number}, {name}같이 키, 값 방법도 사용할 수 있다.
print('I have a {number} apples. and my name is {name}'.format(number = 10, name = 'John'))

python IDLE에서 실행한 결과

format() 메서드에서 입력받은 값을 좌, 우, 가운데 정렬하기

# format() 좌측 정렬
print("1{0:<10}2".format("python"))
print("1{:<10}2".format("python"))
# format() 우측 정렬
print("1{0:>10}2".format("python"))
print("1{:>10}2".format("python"))
# format() 가운데 정렬
print("1{0:^10}2".format("python"))
print("1{:^10}2".format("python"))

python IDLE에서 실행한 결과

2.3. f-string

f-string은 python 버전 3.6 이상부터 지원되는 기능이다. Literal String Interpolation(리터럴 문자열 보간) 방법인데, 줄여서 f-string이라고 불린다. format() 메서드와 비교했을 때 간결한 문법으로 가독성도 좋아지는 것을 볼 수 있다.

format() 메서드와 비교해서 정수를 대입할 때

a = 10
b = 20
# f-string을 이용해 값 대입하기
print(f'{a} + {b} + {a+b}')
print(f'{b} + {a} + {a+b}')

python IDLE에서 실행한 결과

f-string을 이용한 정렬

s = 'python'
# f-string 좌측 정렬
print(f'1{s:<10}2')
# f-string 우측 정렬
print(f'1{s:>10}2')
# f-string 가운데 정렬
print(f'1{s:^10}2')

python IDLE에서 실행한 결과

f-string을 이용해 정렬하며 공백 부분에 특정 문자로 채우기

# f-string을 이용해 가운데 정렬하며 공백을 '-'로 채우기
print(f'{s:-^10}')
# f-string을 이용해 좌측 정렬하며 공백을 '!'로 채우기
print(f'{s:!<10}')
# f-string을 이용해 좌측 정렬하며 공백을 '0'로 채우기
print(f'{s:0<10}')
# f-string을 이용해 우측 정렬하며 공백을 '0'로 채우기
print(f'{s:0>10}')

python IDLE에서 실행한 결과

 

python 기초 예제를 풀어보면서 기본적인 입출력 방법에 대해 알아보았다.

python은 모든 변수들이 객체(object)이기 때문에 다양한 속성(property)과 함수(method)를 갖고 있다. 간단히 설명하자면 'python'은 string객체이다. 따라서 string 객체의 format() 메서드를 사용할 수 있는 것이다.

ex) 'python {}'.format('world')

여기서 python 객체에 관한 개념까지 정리하자면 글이 너무 길어질 것 같아서 다음에 따로 정리해보기로 하겠다.

그래서 앞으로 python으로 알고리즘 문제를 풀 때 다양한 객체의 속성과 함수를 사용해서 문제를 해결할 것이다.

 

 

2021.02.26 - [Programming Language/python] - [CodeUp] Python 기초 100제 6032~6045 풀이 해설

 

[CodeUp] Python 기초 100제 6032~6045 풀이 해설

CodeUp 알고리즘 문제 6032번~6044번 문제의 답입니다. 찾는 문제 번호를 Ctrl + F 단축키로 검색을 하시면 더 빠르게 찾을 수 있습니다. (형식: # + 문제 번호, 예시: #6001) 문제의 답이 이해가 되지 않

devinus.tistory.com

2021.02.27 - [Programming Language/python] - [CodeUp] Python 기초 100제 6046~6076 풀이 해설

 

[CodeUp] Python 기초 100제 6046~6076 풀이 해설

CodeUp 알고리즘 문제 6046번~6076번 문제의 답입니다. 찾는 문제 번호를 Ctrl + F 단축키로 검색을 하시면 더 빠르게 찾을 수 있습니다. (형식: # + 문제 번호, 예시: #6001) 문제의 답이 이해가 되지 않

devinus.tistory.com

2021.02.28 - [Programming Language/python] - [CodeUp] Python 기초 100제 6077~6098 풀이 해설

 

[CodeUp] Python 기초 100제 6077~6098 풀이 해설

CodeUp 알고리즘 문제 6077번~6098번 문제의 답입니다. 찾는 문제 번호를 Ctrl + F 단축키로 검색을 하시면 더 빠르게 찾을 수 있습니다. (형식: # + 문제 번호, 예시: #6001) 문제의 답이 이해가 되지 않

devinus.tistory.com