Daeng iOS

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

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

[코드업 CodeUp] Python 기초 100제 (6021~6030)

U_Daeng 2022. 2. 7. 02:14

[문제집 링크]

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

 

6021번 부터 6024번 까지는 기초 중 입출력 파트였다

 

#6021 - 단어 1개 입력받아 나누어 출력하기

알파벳과 숫자 5개의 문자로 이루어진 단어 1개가 입력될 때, 각 문자를 한 줄에 한 문자씩 분리해 출력

내 풀이(1)

import sys
input = sys.stdin.readline
x = input().rstrip()
for i in range (len(x)):
    print(x[i])

내 풀이(2)

#기초-입출력
#단어 1개 입력받아 나누어 출력하기
import sys
input = sys.stdin.readline
x = input().rstrip()

for j in x:
    print(j)

모범 풀이

s = input()
print(s[0])
print(s[1])
print(s[2])
print(s[3])
print(s[4])

문자열을 리스트처럼 인덱싱해서 접근할 수 있다. s[0]은 첫 번째 문자를 의미한다.

 

#6022 - 연월일 입력받아 나누어 출력하기

6자리 숫자로 이루어진 연월일을 입력받아 나누어 출력

내 풀이

import sys 
input = sys.stdin.readline
date = input().rstrip()
print(date[:2], date[2:4], date[4:], sep=" ")

모범 풀이

s = input()
print(s[0:2], s[2:4], s[4:6], sep=' ')

문자열을 리스트처럼 슬라이싱해서 접근할 수 있다. s[a:b] 라고 하면, s라는 단어에서 a번째 문자부터 b-1번째 문자까지 잘라낸 부분을 의미한다.

 

#6023 - 시분초 입력받아 분만 출력하기

시:분:초 형식으로 시간이 입력될 때 분만 출력

내 풀이

import sys
input = sys.stdin.readline

h, m, s = input().rstrip().split(":")
print(m)

모범 풀이

h, m, s = input().split(':')
print(m)

 

#6024 - 단어 2개 입력받아 이어 붙이기

알파벳과 숫자로 이루어진 2개의 단어가 공백으로 구분되어 입력될 때 순서대로 붙여 출력

내 풀이

import sys
input = sys.stdin.readline

x, y = input().rstrip().split(" ")
print(x, y, sep='')

모범 풀이

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

 


6025번부터 6030번은 기초 중 값변환, 그 중 6027과 6028은 출력변환이였다

 

#6025 - 정수 2개 입력받아 합 계산하기

정수 2개를 입력받아 합을 출력하는 프로그램을 작성 

내 풀이

import sys
input = sys.stdin.readline

x, y = map(int,input().rstrip().split())
print(x+y)

모범 풀이

a, b = input().split()
a=int(a)
b=int(b)
c=a+b
print(c)

 

#6026 - 실수 2개 입력받아 합 계산하기

실수 2개를 입력받아 합을 출력

내 풀이

import sys
input = sys.stdin.readline

x = float(input().rstrip())
y = float(input().rstrip())

print(x + y)

모범 풀이

a=input()
b=input()
a=float(a)
b=float(b)
c=a+b
print(c)

 

#6027 - 10진 정수 입력받아 16진수로 출력하기1

10진수를 입력받아 16진수(hexadecimal)로 출력

내 풀이

import sys
input = sys.stdin.readline

num = int(input())
print(format(num,'x'))

모범 풀이

a=input()
a=int(a)
print("%x"%a)

출력의 형식을 지정해주기 위해 나는 format(변수, 형식)을 사용했다. 

코드업의 풀이처럼 "형식"%변수로 표현해도 된다!!

 

#6028 - 10진 정수 입력받아 16진수로 출력하기2

10진수를 입력받아 16진수 대문자 형태로 출력 

내 풀이

import sys
input = sys.stdin.readline

num = int(input())
print(format(num,'X'))

모범 풀이

a=input()
a=int(a)
print("%X"%a)

그냥 16진수로 표현한다면 x를 쓰고 대문자로 표현하고 싶다면 대문자 X를 쓴다!

 

#6029 - 16진 정수 입력받아 8진수로 출력하기

16진수를 입력받아 8진수(octal)로 출력

내 풀이

import sys
input = sys.stdin.readline

num = int(input().rstrip(),16)
print(format(num,'o'))

모범 풀이

a=input()
a=int(a,16)
print("%o"%a)

풀이 처럼 int(변수, 16) 은 변수를 16진수로 인식한다. 그리고 알파벳 o 로 8진수로 출력할 수 있다.

 

#6030 - 영문자 1개 입력받아 10진수로 변환하기

영문자 1개를 입력받아 10진수 유니코드(Unicode) 값으로 출력

내 풀이

import sys
input = sys.stdin.readline

num = ord(input().rstrip())
print(num)

모범 풀이

n=input()
n=ord(n)
print(n)

ord(변수)는 어떤 문자의 순서 위치(ordinal position) 값을 의미하는 것으로 변수를 10진수 유니코드 값으로 변환한다. 

각 문자들에는 연속된 정수 값이 순서에 따라 부여되어있다. A:65, B:66, C:67 .... 

추가로 소문자는 대문자의 유니코드 값에 +32를 하면된다!

유니코드는 세계 여러 나라의 문자를 공통된 코드 값으로 저장할 때 사용하는 표준 코드다