Daeng iOS

[코드업 CodeUp] Python 기초 100제 (6011~6020) 본문

알고리즘 & 코딩테스트/CodeUp : Python 기초 100제

[코드업 CodeUp] Python 기초 100제 (6011~6020)

U_Daeng 2022. 2. 5. 18:24

[문제집 링크]

https://codeup.kr/problemsetsol.php?psid=33

 

문제집 / Python 기초 100제

 

codeup.kr

 

[깃허브]

https://github.com/yujeong-kwon/Coding-test/tree/master/Codeup

 

GitHub - yujeong-kwon/Coding-test

Contribute to yujeong-kwon/Coding-test development by creating an account on GitHub.

github.com

 

6011부터 6020번은 기초중에서도 입출력 파트였다

 

#6011 - 실수 1개 입력받아 변환하여 출력하기

변수에 실수값을 저장한 후 변수에 저장되어 있는 값을 그대로 출력

내 풀이

print(float(input()))

모범 풀이

f=input()
f=float(f)
print(f)

 

#6012 - 정수 2개 입력받아 그대로 출력하기1

줄을 바꿔 정수 2개를 입력받아 줄을 바꿔 출력

내 풀이

a = int(input())
b = int(input())
print(a, b, sep="\n")

모범 풀이

a=input() 
b=input()
print(a)
print(b)

 

#6013 - 문자 2개 입력받아 순서 바꿔 출력하기1

줄을 바꿔 문자(character) 2개를 입력받고, 순서를 바꿔 한 줄씩 출력

내 풀이 

a = input()
b = input()
print(b, a, sep = "\n")

모범 풀이 

a=input() 
b=input()
print(b)
print(a)

 

#6014 - 실수 1개 입력받아 3번 출력하기

실수(real number) 1개를 입력받아 줄을 바꿔 3번 출력

내 풀이 

a = float(input())
print(a)
print(a)
print(a)

모범 풀이 

a=input()
print(a)
print(a)
print(a)

 

#6015 - 정수 2개 입력받아 그대로 출력하기2

공백을 두고 입력된 정수(integer) 2개를 입력받아 줄을 바꿔 출력

내 풀이

a, b = map(int,input().split())
print(a, b, sep="\n")

모범 풀이

a,b=input().split()
print(a)
print(b)

 

#6016 - 문자 2개 입력받아 순서 바꿔 출력하기2

공백을 두고 문자(character) 2개를 입력받아 순서를 바꿔 출력

내 풀이

a, b = input().split()
print(b, a, sep="\n")

모범 풀이

a,b=input().split()
print(b)
print(a)

바꿔서 출력하는 것이기 때문에 b, a 순서로 출력!

 

#6017 - 문장 1개 입력받아 3번 출력하기

정수, 실수, 문자, 문자열(string) 등 1개만 입력받아 한 줄로 3번 출력

내 풀이

import sys
input = sys.stdin.readline

str = input().rstrip()
print(str,str,str, sep=" ")

모범 풀이

s=input()
print(s, s, s)

input() 대신 sys.stdin.readline()을 사용하는 이유

한 두 줄 입력받는 코드들과 다르게, 반복문으로 여러줄을 입력받아야 할 때는 input()으로 입력 받는다면 시간초과가 발생할 수 있기 때문이다. 간단한 문제에서는 쓸 필요없지만 나는 그냥 습관을 들이기 위해서 사용하고있고 간편하게 사용하려고 임의로 input에 저장해서 사용하고있다.
근데 sys.stdin.readline()은 한 줄 단위로 입력받기 때문에, 개행 문자가 같이 입력받아진다. 끝에 붙어서 저장되는 \n을 제거하기 위해서 인자로 전달된 문자를 오른쪽에서 제거하기위한 rstrip()을 사용한다.

입력에 대한 다양한 정리는 앞으로의 포스팅에서 오류등을 통해 배운 점을 바탕으로 차근차근 적을 예정!

 

#6018 - 시간 입력받아 그대로 출력하기

24시간 시:분 형식으로 시간이 입력될 때, 그대로 출력

내 풀이

import sys
input = sys.stdin.readline

time = input()
h, m = time.split(sep=":")
print(h, m, sep = ":")

모범 풀이

a, b = input().split(':')
print(a, b, sep=':')

split()은 공백을 기준으로 문자열을 쪼개고 다른 문자로 쪼개고 싶다면 sep 옵션을 사용해서 구분자를 지정해준다.

print()를 사용할 때도 sep 옵션을 사용하면 해당 구분자가 주어진 인자들 사이에 포함되어 출력된다.

추가로 print()에서 end=' ' 옵션을 사용한다면 sep와 비슷한 기능을 하여 출력값 뒤에 이어서 출력하고 줄바꿈을 하지않게 된다.

 

#6019 - 연월일 입력받아 순서 바꿔 출력하기

"연도.월.일"을 입력받아 "일-월-연도" 순서로 바꿔 출력

내 풀이

import sys
input = sys.stdin.readline
y, m, d = input().rstrip().split(".")
print(d, m, y, sep="-")

모범 풀이

y, m, d = input().split('.')
print(d,m,y,sep='-')

 

#6020 - 주민번호 입력받아 형태 바꿔 출력하기

왼쪽 6자리는 생년원일(YYMMDD)이고, 오른쪽 7자리는 성별, 출생지역, 확인코드로 구성되어있는 주민번호를 입력받아 형태를 바꿔 출력

내 풀이

import sys
input = sys.stdin.readline
num1, num2 = input().rstrip().split("-")
print(num1, num2, sep="")

모범 풀이

a, b = input().split('-')
print(a,b,sep='')