알고리즘 공부를 위해 코드업 사이트(https://codeup.kr/)의 기초 100제를 시작합니다.
블로그에 올라온 모든 코드는 파이썬(Python)으로 작성되어 있습니다.
Python의 기초 100제를 확인하기 위해서는 다음 사이트로 이동하면 됩니다.
https://codeup.kr/problemsetsol.php?psid=33
6071 : [기초-반복실행구조] 0 입력될 때까지 무한 출력하기(설명)(py)
임의의 정수가 줄을 바꿔 계속 입력된다.
-2147483648 ~ +2147483647, 단 개수는 알 수 없다.
0이 아니면 입력된 정수를 출력하고, 0이 입력되면 출력을 중단해보자.
▷ 참고
if 조건식 :
...
구조를 사용하면,
주어진 조건식의 평가 결과가 True 인 경우에만, 들여쓰기로 구분된 코드블록이 실행된다.
if 를 while 로 바꾸면?
while 조건식 :
...
와 같은 방법으로 반복해서 실행시킬 수 있다.
실행되는 과정은
1. 조건식을 평가한다.
2. True 인 경우 코드블록을 실행한다.
3. 다시 조건식을 평가한다.
4. True 인 경우 코드블록을 실행한다.
조건식의 평가 값이 False 인 경우 반복을 중단하고, 그 다음 명령을 실행한다.
조건식의 평가 결과가 True 동안만 반복 실행된다.
반복실행구조 안에 다른 조건/선택실행구조를 넣을 수도 있고...
조건/선택실행구조 안에 다른 반복실행구조를 넣을 수도 있다.
▷ 해설
while 문은 조건이 False 가 될때 까지 동작한다 위의 문제에서는 0이 아닌 값은 계속 입력 받으므로 n이 0이 아닐때 조건문이 동작한다.
이 외에도 break문을 통해 while문이 if문의 조건이 되면 빠져나올 수 있다
이를 고려해서 코드를 작성해보자.
#조건문에 들어가기 위해 n의 초기값을 설정한다
n = 1
while n != 0:
n = int(input())
# if문이 없으면 0이여도 값을 출력함
if n!=0 :
print(n)
while True:
n = int(input())
# 만약 0이라면 whlie문을 탈출한다
if n == 0:
break
else:
print(n)
6072 : [기초-반복실행구조] 정수 1개 입력받아 카운트다운 출력하기1(설명)(py)
정수(1 ~ 100) 1개가 입력되었을 때 카운트다운을 출력해보자.
while 조건식 :
...
반복 실행구조를 사용해 보자.
▷ 참고
n = n-1 #n에 저장되어있던 값에서 1만큼 뺀 후, 그 값을 다시 n에 저장시킨다.
n -= 1 과 같이 짧게 작성할 수도 있다. n -= 1 은 n = n-1 과 같은 의미이다.
이렇게 산술연산자(+, -, *, / ... )와 대입 연산자(=)를 함께 쓰는 것을 복합대입연산자라고도 부른다.
같은 방법으로 +=, *=, /=, //=, %=, &=, |=, ^=, >>=, <<=, **= 등과 같이 짧게 작성할 수 있다.
처음에 조건식을 검사하고, 그 다음에 실행하고, 그 다음에 값을 바꾸고...
다시 조건식을 검사하고, 실행하고, 값을 바꾸고...
▷ 해설
입력된 하나의 값이 0이 될때가지 출력하고 1을 빼는 과정을 반복한다.
n = int(input())
while n != 0:
print(n)
n = n - 1
6073 : [기초-반복실행구조] 정수 1개 입력받아 카운트다운 출력하기2(py)
정수(1 ~ 100) 1개가 입력되었을 때 정수-1 부터 0 까지 카운트다운을 출력해보자.
while 조건식 :
...
반복 실행구조를 사용해 보자.
▷ 참고
조건검사, 출력, 감소의 순서와 타이밍을 잘 생각해보자.
▷ 해설
위의 문제와 비슷하지만 n에 1을 빼는 부분과 print문의 위치를 서로 바꾸면 n보다 1이 빠진 값 부터 0까지의 값을 출력값으로 보게된다.
n = int(input())
while n != 0:
n = n - 1
print(n)
6074 : [기초-반복실행구조] 문자 1개 입력받아 알파벳 출력하기(설명)(py)
영문 소문자(a ~ z) 1개가 입력되었을 때,
a부터 그 문자까지의 알파벳을 순서대로 출력해보자.
▷ 참고
알파벳 문자 a의 정수값은 ord('a')로 알아낼 수 있다.
chr(정수값)을 이용하면 유니코드 문자로 출력할 수 있다.
print(..., end=' ') 와 같이 작성하면 값 출력 후 공백문자 ' '를 출력한다. 즉, 마지막에 줄을 바꾸지 않고 빈칸만 띄운다.
(end='\n'로 작성하거나 생략하면, 값을 출력한 후 마지막(end)에 줄바꿈(newline)이 된다.)
▷ 해설
c는 우리가 입력한 소문자며 a는 첫 알파벳부터 시작하는 변수이다.
a의 값은 1씩 증가하면서 c보다 커지면 탈출하게 된다.
단, 출력할 때 줄바꿈이 아닌 공백으로 끝을 내야하므로 print의 end를 설정해야한다.
c = ord(input()) + 1
a = ord('a')
while a < c:
print(chr(a), end=' ')
a = a + 1
6075 : [기초-반복실행구조] 정수 1개 입력받아 그 수까지 출력하기1(py)
정수(0 ~ 100) 1개를 입력받아 0부터 그 수까지 순서대로 출력해보자.
▷ 해설
6074문제의 정수 버전이다. 단 줄바꿈을 통해 숫자를 구분한다.
n = int(input())
f = 0
while f <= n:
print(f)
f = f + 1
'공부' 카테고리의 다른 글
코드업 파이썬(Python) 기초 100제 - 6081번 ~ 6085번 (0) | 2021.06.29 |
---|---|
코드업 파이썬(Python) 기초 100제 - 6076번 ~ 6080번 (0) | 2021.06.19 |
코드업 파이썬(Python) 기초 100제 - 6066번 ~ 6070번 (0) | 2021.06.18 |
코드업 파이썬(Python) 기초 100제 - 6061번 ~ 6065번 (0) | 2021.06.18 |
코드업 파이썬(Python) 기초 100제 - 6056번 ~ 6060번 (0) | 2021.06.18 |