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

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

 

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

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

 

문제집 / Python 기초 100제

 

codeup.kr

 

6016 : [기초-입출력] 문자 2개 입력받아 순서 바꿔 출력하기2(설명)(py)

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

 

▷ 참고

print(c2, c1)
와 같은 방법으로 출력하면, c1과 c2에 저장된 값이 공백을 두고 순서가 바뀌어 한 줄로 출력된다.
print( ) 안에서 쉼표(,)를 찍어 순서대로 나열하면, 그 순서대로 공백을 두고 출력된다.

 

▷ 해설

두 문자를 공백으로 입력받는 방법에 이어서 공백으로 출력하는 방식은 쉼표(,)나 +를 이용해서 쉽게 구현 가능하다.

문제에서 순서를 바꿔 출력하길 원하므로 순서를 바꿔 준다. 가끔 알고리즘 문제를 풀다보면 문제를 안읽어 오답처리된 케이스가 많으므로 주의하자.

c1, c2 = input().split()

print(c2, c1)
c1, c2 = input().split()

print(c2 + ' ' + c1)

 

6017 : [기초-입출력] 문장 1개 입력받아 3번 출력하기(설명)(py)

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

 

▷ 참고

python 언어에서는 문자/정수/실수/문자열 등 특별한 구분이 없이도 원하는 변수에 저장시켜 출력 할 수 있다.
하지만, 저장된 값을 이용해 계산하거나 서로 붙여 연결시키거나 잘라내는 작업을 한다면?
반드시 저장되어있는 값의 종류(문자/정수/실수/문자열 등)를 구분해 주어야 한다.

 

▷ 해설

python의 변수는 알아서 정해진다. 이 부분 때문에 초보자가 접근하기 쉬운 언어이기도 하다.

하지만 input()으로 1을 입력할 경우 우리의 생각과는 달리 python은 이 값을 문자로 저장해서 이부분에서 에러가 발생하므로 주의해야한다.

a = input()

add = a + 10 #에러 발생 a에 입력된 값은 문자이므로 서로 다른 자료형 사이의 연산이 됨

 

a = input()

a = int(a) 

add = a + 10 #위에서 a의 형변환이 이루어져 정상적으로 실행됨

s = input()

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

print(s + ' ' + s + ' ' + s)

 

6018 : [기초-입출력] 시간 입력받아 그대로 출력하기(설명)(py)

24시간 시:분 형식으로 시간이 입력될 때, 그대로 출력하는 연습을 해보자.

 

▷ 참고

input().split(':') 를 사용하면 콜론 ':' 기호를 기준으로 자른다.
print(?, ?, sep=':') 를 사용하면 콜론 ':' 기호를 사이에 두고 값을 출력한다.
sep 는 분류기호(seperator)를 의미한다.

 

▷ 해설

이제 split()와 print()에서 공백외에 특정 기준을 지정하는 방법을 배운다.

split의 안에 넣은 문자를 기준으로 값은 분리가 되며 기준이 된 문자는 저장이 안되고 사라지게 된다.

print에서 sep으로 지정된 문자 또한 기존에 쉼표(,)로 구분되어 공백으로 처리하던 부분에 들어가 출력된다. 

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

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

print(h + ':' + m)

 

6019 : [기초-입출력] 연월일 입력받아 순서 바꿔 출력하기(py)

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

 

▷ 참고

y, m, d = input().split('.')
과 같이 변수들을 순서대로 나열하면 구분기호를 기준으로 잘라 순서대로 저장한다.

 

▷ 해설

이번 문제는 6018번과 같이 split에서 특정 문자를 기준으로 자르고, 공백대신 특정 문자를 포함해 출력하는 문제이다

y, m, d = input().split('.')

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

print(d + '-' + m + '-' + y)

 

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

주민번호는 다음과 같이 구성된다.
XXXXXX-XXXXXXX

왼쪽 6자리는 생년월일(YYMMDD)이고, 오른쪽 7자리는 성별,출생지역,확인코드로 구성되어있다.
주민번호를 입력받아 '-'를 제외한 주민번호 13자리를 모두 붙여 출력해보자.

 

▷ 해설

이번에는 공백을 없애는 방법에 대해서 알아본다.

주민등록번호에 있는 -를 없애기 위해서는 문자를 주민번호 앞자리와 뒷자리를 -로 구분해서 변수에 저장한다.

변수 두개를 공백을 없애기 위해서 ''를 기준으로 넣으면 공백이 없이 출력이 된다.

또는 +를 이용하여 두 문자열을 붙여서 출력하는 방법도 있다.

ssn1, ssn2 = input().split('-')

print(ssn1, ssn2, sep='')
ssn1, ssn2 = input().split('-')

print(ssn1 + ssn2)

 

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

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

 

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

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

 

문제집 / Python 기초 100제

 

codeup.kr

 

6011 : [기초-입출력] 실수 1개 입력받아 변환하여 출력하기(설명)(py)

숫자(0~9)와 소수점(.)을 사용해 표현한 수를 실수(real number)라고 한다.

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

 

▷ 참고

어떤 값을 1개 입력받아 계산하거나 처리해야하는 경우라면, 입력되는 값이 수인지 문자열인지 구분해야한다.
조금 생각해보면, 키보드로 입력한 9라는 값이 문자 9인지, 정수 9인지, 실수 9.0인지 컴퓨터가 스스로 구분하지 못한다는 것을 알 수 있다.
컴퓨터 내부에서는 2진 체계의 디지털 형태로만 저장할 수 있기 때문에 정수, 문자, 실수 등의 저장 방법이 다르다.
입력한 값을 원하는 형태로 계산하거나 처리하기 위해서는 입력한 값이 어떤 데이터(정수, 문자, 실수, 문자열 등)인지 명확히 구분해 주어야 한다.

 

▷ 해설

이 문제를 풀기 위해서는 Python의 자료형에 대한 이해가 필요하다.

우리가 자주 사용하는 1, 2, 3, -1, -2, 0 등 정수는 코드에서 int형으로 표현이 된다.

문제에서와 같이 소수점을 표현하기 위해서는 float형을 이용하여 입력된 문자의 형을 변환시켜준다.

추가적으로 키보드로 입력받은 입력값은 str형으로 문자열을 저장한 자료형이다.

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

 

6012 : [기초-출력] 출력하기07(py)

줄을 바꿔 정수(integer) 2개를 입력받아 줄을 바꿔 출력해보자.

 

▷ 해설

이번 문제에서는 한 코드에서 두번은 입력을 받으면 쉽게 해결가능한 문제다.

이 문제를 통해서 우리는 한 코드에서 여러번의 input이 가능하다는것을 알 수 있다.

이제는 입력이 필요한 만큼 input문을 통해 사용자에게 입력받는다.

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

 

6013 : [기초-입출력] 문자 2개 입력받아 순서 바꿔 출력하기1(py)

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

 

▷ 해설

6012번의 문제는 a와 b를 순서대로 입력하면 차례대로 a와 b를 출력하는 형태였다. 하지만 이번 문제에서는 b를 a보다 먼저 출력하게된다.

이 문제에서는 코드는 기본적으로 위에서 선언이 되어있으면 저장된 순서대로 나오지 않아도 된다는걸 b가 a보다 먼저 출력이 가능한 것을 통해 알 수 있다. 

a = input()
b = input()

print(b)
print(a)

 

6014 : [기초-입출력] 실수 1개 입력받아 3번 출력하기(py)

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

 

 참고
python 코드 사이에 설명(주석)을 작성해 넣고 싶은 경우 샵('#') 기호를 사용하면 된다.
#가 시작된 위치부터 그 줄을 마지막까지는 python 인터프리터에 의해서 실행되지 않는다.
소스코드 부분 부분에 설명, 내용, 표시를 한 줄 설명으로 넣을 경우에 편리하게 사용할 수 있다.
여러 줄로 설명을 넣는 방법도 있다. 스스로 찾아보자!

 

▷ 해설

이번 문제에서는 입력 받은 값을 여러번 출력된다는걸 알려준다.

코드에서는 한 번 변수에 저장된 값을 계속해서 재사용이 가능해진다.

즉, f라는 이름을 가진 0.1이라는 값은 코드가 끝날때 까지 f라는 이름을 가지고 유지된다. 이를 없애거나 변경하기 위해서는 우리가 코드를 통해 접근해 다시 바꾸는 방법만 있다.

 

또한 이번 문제에서는 주석에 대한 이야기도 다루고 있다.

주석은 코드에 대한 설명이다.

지금은 한 두줄의 코드이지만 나중에 코드가 길어지면 주석이 없으면 무슨 일을 수행하는 코드인지 이해하기 어려워질 것이다.

그래서 우리는 주석을 다는 것을 습관화해서 1년 뒤에 다시봐도 이해할 수 있도록 코드에 설명을 넣어준다

샵(#)을 앞에 두고 코드를 작성하게 되면 뒤의 문장이 모두 주석처리가 된다. 이 경우 줄바꿈을 통해 주석의 끝을 확인할 수 있다.

그래서 우리는 """주석""" 또는 '''주석''' 다음과 같이 큰 따옴표(")나 작은 따옴표(') 세 개로 주석의 시작점과 끝점을 알려주는 방식을 이용해 줄바꿈도 포함해서 주석을 다는 방법이있다.

f = input()

#문자열 f를 실수 f로 자료형을 변환
f = float(f) 

"""
0.1을 입력할 경우

0.1
0.1
0.1
다음과 같이 세줄로 출력된다.
"""
print(f)
print(f)
print(f)

 

6015 : [기초-입출력] 정수 2개 입력받아 그대로 출력하기2(설명)(py)

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

 

 참고
python의 input()은 한 줄 단위로 입력을 받는다.
input().split() 를 사용하면, 공백을 기준으로 입력된 값들을 나누어(split) 자른다.
a, b = 1, 2
를 실행하면, a에는 1 b에는 2가 저장된다.
(주의 : 하지만, 다른 일반적인 프로그래밍언어에서는 이러한 방법을 지원하지 않기 때문에 a=1, b=2 를 한 번에 하나씩 따로 실행시켜야 한다.)

 

▷ 해설

지금까지는 두 입력값을 받기 위해서 input을 두번 사용했지만 이제부터는 split()함수를 이용해 한줄로 입력 받을 수 있다.

split() 함수는 입력된 값을 공백을 기준으로 자르게 된다

.

한줄로 입력된 값을 두 변수에 받기 위해서는 쉼표(,)를 기준으로 두개의 변수를 적어야한다.

이 방법을 통해 지금까지 두줄에 걸쳐서 작성되던 코드가 한줄로 줄어들게 된다. 지금은 한줄만 줄어들었지만 4개의 값을 입력해야할 경우 코드가 3줄 줄어들고 100개의 값을 입력받을 경우 99줄이 줄어들게 된다.

알고리즘에서는 대부분 한줄에 공백을 기준으로 여러값을 입력하므로 이 방법을 익혀둔 다면 유용하게 사용될 것이다. 

a, b = input().split()

a = int(a)
b = int(b)

print(a)
print(b)

 

 

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

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

 

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

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

 

문제집 / Python 기초 100제

 

codeup.kr

 

6006 : [기초-출력] 출력하기06(py)

이번에는 특수문자 출력에 도전하자!!

다음 문장을 출력하시오.

"!@#$%^&*()'
(단, 큰따옴표와 작은따옴표도 함께 출력한다.)

 

출력 형식에 필요한 따옴표와 출력할 문자인 따옴표를 구분하기 위하여

\" 또는 \' 를 이용하여 출력할 수 있다.

 

▷ 해설

이번 문제에서는 한 문장안에 큰 따옴표(")와 작은 따옴표(')를 동시에 사용하므로 확장 문자(escape sequence)를 이용해 \'과 \"로 표기해서 한줄로 출력할 수 있다.

또는 +를 이용해 문자열 끼리의 합을 이용해 이 문제를 해결할 수 있다. 큰 따옴표(")는 작은 따옴표(')로 문자열로 표현하고, 작은 따옴표(')를 큰 따옴표(")로 감싸주면 한줄로 두 따옴표를 모두 출력할 수 있다.

print("\"!@#$%^&*()\'")
print('"' + "!@#$%^&*()'")

 

6007 : [기초-출력] 출력하기07(py)

윈도우 운영체제의 파일 경로를 출력하는 연습을 해보자.
 
파일 경로에는 특수문자들이 포함된다.

다음 경로를 출력하시오.

"C:\Download\'hello'.py"
(단, 따옴표도 함께 출력한다.)

 

\도 안전하게 출력하려면 \\를 사용하는 것이 좋다.

 

▷ 해설

이번 문제에서는 한 문장안에 큰 따옴표(")와 작은 따옴표('), \(역슬래시)를 동시에 출력하는 문제이다.

이 문제를 해결하기 위해서는 확장 문자(escape sequence)를 이용해 문제가 될 부분의 표현을 \'와 \", \\로 변경해서 문자열로 표현하면 경로를 정상적으로 입력할 수 있다.

print("\"C:\\Download\\\'hello\'.py\"")

 

6008 : [기초-출력] 출력하기08(py)

출력문 연습의 마지막 문제이다.
(생각과 시도를 많이 해야하는 문제들은 한 두 문제씩 넘겼다가 나중에 풀어보면 된다.)

이번에는 다음과 같은 python프로그램의 소스코드를 출력해보자.

print("Hello\nWorld")

위 코드를 정확히 그대로 출력하시오.(공백문자 주의)

 

print 명령 안에 서식 문자로 \n을 사용하면 줄 바꿈(new line) 문자로 사용된다.

그렇다면 \n을 화면에 그대로 출력하려면 어떻게 해야될까?

 

▷ 해설

\n은 전의 6003번 문제에서 사용된 줄바꿈 문자이다.

이 문자를 정상적으로 출력하기 위해서는 확장 문자(escape sequence)를 없애야한다.
백 슬래시(\)를 두번 사용해 백 슬래시를 확장 문자가 아닌 하나의 문자로 만들게 되면 \n은 결국 줄바꿈이 아닌 문자 그대로 저장 된다. 
 

print('print("Hello\\nWorld")')

 

6009 : [기초-입출력] 문자 1개 입력받아 그대로 출력하기(설명)(py)

문자(character)는
0~9, a~z, A~Z, !, @, #, {, [, <, ... 과 같이 
길이가 1인 기호라고 할 수 있다.

변수에 문자 1개를 저장한 후
변수에 저장되어 있는 문자를 그대로 출력해보자.

 

 참고
input() 을 사용하면 키보드로 입력한 값을 가져온다.
변수 = input()
를 실행시키면 키보드로 입력한 값을 왼쪽의 변수에 저장한다.

변수(variable)는 어떤 값(정수, 실수, 문자, 문자열 등)을 저장할 수 있는 공간의 별명이라고 할 수 있다.
어떤 값을 저장했다가 다시 사용하기 위해서 변수를 사용한다. 저장할 내용들이 많으면 필요한 만큼 변수를 만들어 사용하면 된다.
변수는 포스트 잇과 같은 메모지에 필요한 내용을 적어두었다가, 필요할 때 찾아 살펴보는 것과 비슷하다.

대수학(algebra)에서는 어떤 수나 값을 대신해 문자로 표현하는 방법을 사용한다.
프로그래밍언어에서도 마찬가지로 자신이 알아보기 쉬운 짧은 단어를 사용하는 것이 좋다. 예시) y = x + 3

 

▷ 해설

c라는 변수에 사용자가 키보드로 입력한 문자를 받는다.

이후 print문을 통해 변수에 저장된 값(=키보드로 입력받은 값)을 출력하는 문제이다.

c = input()
print(c)

 

6010 : [기초-입출력] 정수 1개 입력받아 int로 변환하여 출력하기(설명)(py)

정수(integer)는
양의 정수(1, 2, 3, 4, 5, ...), 음의 정수(-1, -2, -3, -4, -5, ...), 0 과 같이
소숫점 아래에 수가 없는 수라고 할 수 있다.

변수에 정수값을 저장한 후 정수로 변환하여 출력해보자.

 

 참고
input() 을 사용하면 키보드로 입력(input)한 값을 가져온다.

 

변수 = input()
를 실행시키면 키보드로 입력한 값을 왼쪽의 변수에 저장(할당, asign) 한다.

변수는 어떤 값(정수, 실수, 문자, 문자열 등)을 저장할 수 있는 공간의 별명이라고 할 수 있다.
변수는 일반적으로 알파벳(a~z, A~Z)이나 언더라인 '_'으로 시작하는 단어를 사용하고, 숫자(0~9)로 시작하는 단어는 사용할 수 없다.
숫자로 시작하는 단어는 수로 인식하기 때문이다.
(python의 경우 한글 변수도 사용할 수 있지만, 영문을 사용하는 것이 예상하지 못하는 오류를 방지할 수 있다.)

'=' 연산자는 오른쪽의 계산 결과 값을 왼쪽의 변수에 저장하라는 의미의 대입연산자이다.
왼쪽의 결과값과 오른쪽의 결과값이 같다는 의미의 수학식의 등호와는 의미가 다르다. 

 

▷ 해설

n이라는 변수에 사용자가 키보드로 입력한 문자를 받는다.

단, 입력받은 문자는 숫자가 들어와도 문자로 인식하게 된다.

그래서 이 값을 숫자로 인식하기 위해서는 int(변수)를 이용해 입력 된 값의 형변환을 진행해야 한다. 

n = input()
n = int(n)
print(n)

 

 

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

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

 

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

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

 

문제집 / Python 기초 100제

 

codeup.kr

 

6001 : [기초-출력] 출력하기01(설명)(py)

python 언어에서 가장 기본적인 명령이 출력문이다.
print( )를 이용해 다음 단어를 출력하시오.

Hello

 

 참고
python IDE 프로그램을 설치한 후,
아래와 같은 소스 코드를 작성하고 실행시키면,
지정한 "문장"이 출력(print)된다.
print("문장") 

 

▷ 해설

다음 문제는 Python의 기본 출력문인 print문을 이용하여 Hello라는 문장을 출력하는 문제이다.

다음과 같이 문자열은 큰 따옴표(")사이에 넣어 줘야 문자열로 인식한다.

만약 큰 따옴표가 빠지면 변수명인 Hello에 대해서 출력을 실행하게 된다. 

print("Hello")

 

6002 : [기초-출력] 출력하기02(설명)(py)

이번에는 공백( )을 포함한 문장을 출력한다.
다음 문장을 출력해보자.

Hello World
(대소문자에 주의한다.)

 

 참고
print("문장1 문장2")
을 실행시키면 "문장1”, "문장2"가 공백( )을 사이에 두고 출력된다.
print("문장1", "문장2")
도 "문장1"과 "문장2" 사이에 공백( )을 출력한다.

 

▷ 해설

다음 문제는 Python의 기본 출력문인 print문을 이용하여 Hello World라는 공백이 있는 문장을 출력하는 문제이다.

1번 문제와 같이 문자열은 큰 따옴표(")사이에 넣어 줘야 문자열로 인식하며 공백도 문자여서 큰 따옴표 안에 넣어주면 정상적으로 출력된다.

이 외에도 쉼표(,)를 이용해 문장을 구분지어 주면 문자열사이에 공백을 추가할 수 있다.

print("Hello World")
print("Hello", "World")

 

6003 : [기초-출력] 출력하기03(설명)(py)

이번에는 줄을 바꿔 출력하는 출력문을 연습해보자.
다음과 같이 줄을 바꿔 출력해야 한다.

Hello
World
(두 줄에 걸쳐 줄을 바꿔 출력)

 참고
python의 기본 print( ) 를 이용해 출력하면 문장을 출력한 후 마지막에 줄을 바꾼다.(new line)
출력 후 줄을 바꾸는 대신 스페이스( ) 공백을 붙이도록 설정하는 방법도 있다.

 

▷ 해설

이번 문제는 print문을 이용하여 Hello와 World사이에 줄바꿈을 추가하는 문제이다.

줄을 바꾸기 위해서는 개행문자인 \n을 문자열 사이에 넣어주어 "Hello\nWorld"를 출력하는 방법이 있다.

이외에도 print문이 끝나면 자동으로 개행문이 삽입된다는 특징을 이용해 두개의 print문을 이용해 문제를 풀 수 있다.

print("Hello\nWorld")
print("Hello")
print("World")

 

6004 : [기초-출력] 출력하기04(설명)(py)

이번에는 작은 따옴표(')(single quotation mark)가 들어있는
출력문 연습을 해보자.

다음 문장을 출력하시오.

'Hello'

 

▷ 해설

문자열을 정의하는데 사용되는 작은 따옴표(')나 큰 따옴표(")를 출력하는 방법에 대해 알아보는 문제이다.

작은 따옴표(')를 출력하기 위해서는 "'Hello'" 다음과 같이 큰 따옴표와 혼용해서 사용하는 방법이 있다.

이외에도 \를 붙여 \'과 같이 확장 문자를 만들어 주면 출력이 가능해진다. 

print("'Hello'")
print('\'Hello\'')

 

6005 : [기초-출력] 출력하기05(설명)(py)

이번에는 큰따옴표(")(double quotation mark)가 포함된 출력문을 연습해보자.

다음 문장을 출력하시오.

"Hello World"
(단, 큰따옴표도 함께 출력한다.)

 

▷ 참고

python 언어에서 print( ) 로 출력할 문장을 표현할 때 큰 따옴표 기호(")로 묶어 표현한다. 
따라서, 큰따옴표 기호 그 자체를 출력하기 위해서는 다른 방법을 사용해야한다.
python 언어에서 문장(문자열)을 표현하는 기호로 "와 '를 쌍으로 묶어 사용할 수 있다.
따라서, 문장을 표현할 때 사용하는 큰따옴표("문장") 기호 대신 작은따옴표('문장')를 사용하면 큰따옴표를 출력할 수 있다.
(물론, 큰따옴표를 출력하는 다른 방법도 있다.) 

 

▷ 해설

지금까지는 문자열을 정의하는데 큰따옴표(")를 사용했지만 파이썬에서는 작은 따옴표(')로도 문자열로 표현이 가능하다. 

그래서 6004번의 문제와 마찬가지로 두 따옴표를 혼용해서 사용하거나,  \를 붙여 \"과 같이 확장 문자로 만들면 출력이 가능하다 

print('"Hello World"')
print("\"Hello World\"")

 

 

+ Recent posts