IFP 겨울방학 스터디 | 코드업 기초 100제 (2)

유재우·2022년 1월 18일
0

IFP-겨울방학 스터디

목록 보기
21/38

2. 기초-입출력

  • 정수형(int)으로 변수를 선언하고, 변수에 정수값을 저장한 후 변수에 저장되어 있는 값을 그대로 출력해보자.

내 풀이)

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

강의 풀이)

var = int(input())
print(var)

  • 문자형(char)으로 변수를 하나 선언하고, 변수에 문자를 저장한 후 변수에 저장되어 있는 문자를 그대로 출력해보자.

내 풀이)

character = char(input()) # character = input()
print(character)

강의 풀이)

var = input()
print(var)

input()형은 문자형으로 값을 저장하므로 형변환이 필요없다는 것을 간과했다.


  • 실수형(float)로 변수를 선언하고 그 변수에 실수값을 저장한 후 저장되어 있는 실수값을 출력해보자.

내 풀이)

fl = float(input())
print(fl)

강의 풀이)

var = float(input())
print(var)

  • 정수(int) 2개를 입력받아 그대로 출력해보자. (단, 띄어쓰기를 기준으로 입력한다.)
    입력 : 1 5
    출력 : 1 5

내 풀이)

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

강의 풀이)

var = list(map(int, input().split()))
print(var[0], var[1])

매핑함수 map()의 반환값은 map객체이다. 따라서 육안으로 확인하기 위해서는 list()로 변환시켜줘야한다.


  • 2개의 문자(ASCII CODE)를 입력받아서 순서를 바꿔 출력해보자.

내 풀이)

a = input().split()
print(a[1], a[0])

강의 풀이)

var = input().split()
print(var[1], var[0])

  • 실수(float) 1개를 입력받아 저장한 후, 저장되어 있는 값을 소수점 셋 째 자리에서 반올림하여 소수점 이하 둘 째 자리까지 출력하시오.

내 풀이)

fl = float(input())
print(round(fl, 2))

강의 풀이)

var = round(float(input()), 2)
print(var)

  • int형 정수 1개를 입력받아 공백을 사이에 두고 3번 출력해보자.

내 풀이)

var =  int(input())
print(var,var,var)

강의 풀이)

var = int(input())
print(var, var, var)

  • 어떤 형식에 맞추어 시간이 입력될 때, 그대로 출력하는 연습을 해보자.
    콜론(:) 기호를 기준으로 두 수가 각 변수에 저장된다.
    입력 : 3:15
    출력 : 3:15

내 풀이)

hour, min = input().split(':')
print(hour+':'+min)

강의 풀이)

h, m = input().split(':')
print('{}:{}'.format(h, m))

문자열의 메소드(함수)인 format()을 이용하면 문자열 내부에 변수값을 대입할 수 있다.


  • 년, 월, 일을 입력받아 지정된 형식으로 출력하는 연습을 해보자.
    입력
    연, 월, 일이 ".(닷)"으로 구분되어 입력된다.
    출력
    입력받은 연, 월, 일을 yyyy.mm.dd 형식으로 출력한다.
    입력 : 2020.2.9
    출력 : 2020.02.09
    (단, m 혹은 d가 한 자리 수인 경우 앞에 0을 붙여 출력한다.)

내 풀이)

year, mon, day = input().split('.')
print('{}.{}.{}'.format(year,mon,day))

강의 풀이)

y, m, d = input().split('.')
if len(m) == 1:
  m = '0'+m
if len(d) == 1:
  d = '0'+d
print('{}.{}.{}'.format(y, m, d))

(단, m 혹은 d가 한 자리 수인 경우 앞에 0을 붙여 출력한다.)의 조건을 보지 못하고 코드 작성을 하였다.


  • 주민번호는 다음과 같이 구성된다.
    XXXXXX-XXXXXXX
    앞의 6자리는 생년월일(yymmdd)이고 뒤 7자리는 성별, 지역, 오류검출코드이다.
    주민번호를 입력받아 형태를 바꿔 출력해보자.
    입력
    주민번호 앞 6자리와 뒷 7자리가 '-'로 구분되어 입력된다. (입력값은 가상의 주민번호이다.) ex)110011-0000000
    출력
    '-'를 제외한 주민번호 13자리를 모두 붙여 출력한다.
    입력 : 000907-1121112
    출력 : 0009071121112

내 풀이)

front, back = input().split('-')
print(front + back)

강의 풀이)

a, b = input().split('-')
print('{}{}'.format(a,b))

  • 1개의 문자열을 입력받아 그대로 출력해보자.

내 풀이)

char = input()
print(char)

강의 풀이)

string = input()
print(string)

  • 공백이 포함되어 있는 한 문장이 입력된다. 단, 입력되는 문장은 여러 개의 단어로 구성되고, 엔터로 끝난다.

내 풀이)

char = input()
print(char)

강의 풀이)

print(string)

  • 실수 1개를 입력받아 정수 부분과 실수 부분으로 나누어 출력한다.
    입력 :
    1.435867
    출력 :
    1
    435867

내 풀이)

jungsu, silsu = input().split('.')
print(jungsu, end='\n' + silsu)

강의 풀이)

string = input().split('.')
print('''\
{}
{}
'''.format(string[0], string[1]))

  • 단어를 1개 입력받는다.
    입력받은 단어(영어)의 각 문자를 한줄에 한 문자씩 분리해 출력한다.
    (단, 단어의 문자(영어)를 하나씩 나누어 한 줄에 한 개씩 ' '로 묶어서 출력한다.)
    입력 :
    'Boy'
    출력 :
    'B'
    'o'
    'y'

내 풀이)

word = list(input())
for i in range(len(word)):
    print("'" + word[i] + "'")

강의 풀이)

string = input()
for i in range(len(string)):
  print("'{}'".format(string[i]))

  • 다섯 자리의 정수 1개를 입력받아 각 자리별로 나누어 출력한다.
    입력 :
    75254
    출력 :
    [70000][5000]
    [200][50]
    [4]

내 풀이)

five = list(input())    # list()로 굳이 감싸줄 필요는 없다.
for i in range(5):
    print('[{}'.format(five[i]) + '0' * (4 - i) + ']')

강의 풀이)

integer = input()
count = len(integer)-1
for i in range(len(integer)):
  print([int(integer[i] + '0'*count)])
  count -= 1

  • 입력되는 시:분:초 에서 분만 출력해보자.

내 풀이)

hour, min, sec = input().split(':')
print(sec)

강의 풀이)

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

  • 년월일을 출력하는 방법은 나라마다, 형식마다 조금씩 다르다.
    년월일(yyyy.mm.dd)를 입력받아,
    일월년(dd-mm-yyyy)로 출력해보자.
    (단, 한 자리 일/월은 0을 붙여 두자리로 출력한다.)

내 풀이)

y, m ,d = input().split('.')
if len(m) == 1:
    m = '0' + m
if len(d) == 1:
    d = '0' + d
print('{}-{}-{}'.format(d,m,y))

강의 풀이)

y, m, d = input().split('.')
m = '0'+m if len(m) == 1 else m
d = '0'+d if len(d) == 1 else d
print('{}-{}-{}'.format(d, m, y))

조건문 if-else문을 파이썬의 3항 연산자 기능을 이용하면 더 간단하게 작성할 수 있다. 이렇게 작성하는 것이 메모리 효율성면에서도 효과적이다.

강의 영상

profile
끝없이 탐구하는 iOS 개발자 유재우입니다!

0개의 댓글