알고리즘 공부를 위해 코드업 사이트(https://codeup.kr/)의 기초 100제를 시작합니다.

블로그에 올라온 모든 코드는 파이썬(Python)으로 작성되어 있습니다.   

 

Python의 기초 100제를 확인하기 위해서는 다음 사이트로 이동하면 됩니다. 

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

 

문제집 / Python 기초 100제

 

codeup.kr

 

6021 : [기초-입출력] 단어 1개 입력받아 나누어 출력하기(설명)(py)

알파벳과 숫자로 이루어진 5개의 문자가 입력된다.
입력받은 단어의 각 문자를 한 줄에 한 문자씩 분리해 출력한다.

 

▷ 참고

s[0] 은 첫 번째 문자를 의미한다.

 

▷ 해설

어떤 값이 올지 몰라 이 경우에는 split로 구분이 불가능해진다.

이 문제를 해결하기 위해서는 문자열 인덱싱이 필요하다

Hello라는 문자가 입력된경우 문자열은 자동적으로 0번 부터 4번까지의 번호가 인덱싱이 된다.

문자 H e l l o
인덱스 0 1 2 3 4

그래서 우리는 변수명 뒤에 대괄호([ ])를 붙혀 인덱스를 선택하게 된다. 

변수명[인덱스] 

다음 형식이 인덱싱의 기본 형태이다.

s = input()

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

 

6022 : [기초-입출력] 연월일 입력받아 나누어 출력하기(설명)(py)

6자리의 연월일(YYMMDD)을 입력받아 년도(YY) 월(MM) 일(DD)을 공백으로 구분해 한 줄로 출력해보자.

 

▷ 참고

s = input()
print(s[0:2])
를 실행하면 0번째 문자부터 1번째 문자까지 잘라 출력한다.
s[a:b] 라고 하면, s라는 단어에서 a번째 문자부터 b-1번째 문자까지 잘라낸 부분을 의미한다.
다른 자르기 방법도 있다.

 

▷ 해설

이제 문자열 슬라이싱을 이용하면 값을 문자 하나가 아닌 문자열로 나눌 수 있다.

슬라이싱은 인덱스와 비슷하게 대괄호([ ])안에 나타낸다.

단 인덱싱 처럼 숫자만 입력하는 것이 아닌 범위를 표현하기 위해서 쌍점(:)을 이용한다.

쌍점의 앞의 값부터 뒤의 값 - 1 까지의 문자를 묶어서 값이 나온다.

 

21년 6월 14일(210614)을 입력하면 인덱스는 다음과 같다. 

연월일(YYMMDD) 2 1 0 6 1 4
인덱스 0 1 2 3 4 5

 

s = input()

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

print(s[0:2] + ' ' + s[2:4] + ' ' + s[4:6])

 

6023 : [기초-입출력] 시분초 입력받아 분만 출력하기(py)

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

어떻게 분만 출력해야 할지 주의 깊게 생각해야한다.

 

▷ 해설

split()를 이용해 :를 기준으로 끊는 방법으로만 문제를 풀 수 있다.

슬라이싱의 경우 23:11:50의 슬라이싱은 s[3:5]지만, 9:11:50의 경우엔 s[2:4]로 슬라이싱을 해야되며 슬라이싱 범위가 달라지게된다. 

문자열 2 3 : 1 1 : 5 0
인덱스 0 1 2 3 4 5 6 7

 

문자열 9 : 1 1 : 5 0
인덱스 0 1 2 3 4 5 6

 

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

print(m)

 

6024 : [기초-입출력] 단어 2개 입력받아 이어 붙이기(설명)(py)

알파벳 문자와 숫자로 이루어진 단어 2개를 입력받아
순서대로 붙여 출력하는 프로그램을 작성해보자.

 

▷ 참고

단어는 문자(character)들로 만든다.
문자들로 구성된 문장을 문자열(string)이라고 부른다.
문자열에는 공백문자(' ')가 포함될 수 있는데, 
문자 1개는 길이가 1인 문자열이라고 할 수 있고, 공백문자(' ')가 없는 문자열은 단어(word)라고 할 수 있다.

일반적인 문장들은 공백으로 구분된 단어들로 만들어지기 때문에,
공백문자로 구분된 문장에서 단어를 잘라내기 위해서는 공백문자(' ')를 기준으로 자르면 된다.
키보드로 입력되는 것들은 기본적으로 문자열로 인식되고, 문자열끼리 더하기(+)를 실행하면,
두 문자열을 합쳐 연결한(concatenate) 결과를 만들어 낸다.

 

▷ 해설

한 문자열을 split로 공백을 기준으로 나눠받아 공백을 없애기 위해 sep이나 +를 이용해 출력하면 된다

s1, s2 = input().split()

print(s1, s2, sep='')
s1, s2 = input().split()

print(s1 + s2)

 

6020 : [기초-입출력] 주민번호 입력받아 형태 바꿔 출력하기(py)

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

 

▷ 참고

입력되는 값은 기본적으로 문자열로 인식된다.

문자열 + 문자열은 두 문자열을 합친 문자열을 만든다.
숫자로 구성된 문자열이나 실수를 정수(integer) 값으로 바꾸기 위해서는 int( ) 를 사용할 수 있다.
수 + 수의 결과는 합(addition)이 계산된다.

 

▷ 해설

자료형을 고려하지 않고 공백으로 나눈 뒤 합을 구하게 되면 문자열을 연결한 값이 나와 문제를 틀릴 것이다.

우리는 이러한 문제를 해결하기 위해 입력하는 값이 정수인 경우 형변환을 통해 자료형을 int()로 변경해준다.

그렇게 해야지만 구하고자 했던 답인 두 수의 합이 나오게 된다.

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

 

+ Recent posts