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

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

 

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

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

 

문제집 / Python 기초 100제

 

codeup.kr

 

6076 : [기초-반복실행구조] 정수 1개 입력받아 그 수까지 출력하기2(설명)(py)

정수(0 ~ 100) 1개를 입력받아 0부터 그 수까지 순서대로 출력해보자.

 

▷ 참고

range(n) 은 0, 1, 2, ... , n-2, n-1 까지의 수열을 의미한다.
예를 들어 range(3) 은 0, 1, 2 인 수열을 의미한다.

for i in range(n) :    #range(n)에 들어있는(in) 각각의 수에 대해서(for) 순서대로 i에 저장해 가면서...
이때의 for는 각각의 값에 대하여... 라는 for each 의 의미를 가진다고 생각할 수 있다.

range(끝)
range(시작, 끝)
range(시작, 끝, 증감)
형태로 수열을 표현할 수 있다. 시작 수는 포함이고, 끝 수는 포함되지 않는다. [시작, 끝)
증감할 수를 작성하지 않으면 +1이 된다.

반복 실행구조에 반복 횟수를 기록/저장하는 변수로 i를 자주 사용하는데,
i 는 반복자(iterator)를 나타내는 i라고 생각할 수 있다. i, j, k ... 알파벳 순으로 사용하기도 한다.

 

▷ 해설

while문 외에도 반복문이 있다.

for문을 이용하기 위해선 수열이 필요한데 이때 수열을 생성하는 함수가 range이다.

순차적으로 값을 넣어보는 대부분의 경우 for문을 사용한다. for문에서는 현재 반복횟수를 저장하는 변수가 존재한다

n = int(input())

for i in range(0, n+1):
    print(i)

 

6077 : [기초-종합] 짝수 합 구하기(설명)(py)

정수(1 ~ 100) 1개를 입력받아 1부터 그 수까지 짝수의 합을 구해보자.

 

▷ 참고

while 이나 for 반복실행구조를 이용할 수 있다.
다른 방법이나 while 반복실행구조를 이용해서도 성공시켜 보자.

 

▷ 해설

for문을 사용할 수 있으면 while문도 사용이 가능하다.

다음문제에서는 for문을 while문으로 바꿨을 때 달라진 점을 확인해보자

n = int(input())
sum = 0

for i in range(1, n+1):
    if i % 2 == 0:
       sum = sum + i 

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

i = 1
sum = 0

while i < n+1:
    if i % 2 == 0:
       sum = sum + i 
    i = i+1
    
print(sum)

 

6078 : [기초-종합] 원하는 문자가 입력될 때까지 반복 출력하기(py)

영문 소문자 'q'가 입력될 때까지
입력한 문자를 계속 출력하는 프로그램을 작성해보자.

 

▷ 해설

while문을 이용해 계속 값을 입력 받다가 특정 값이 오면 출력한 후 while문을 빠져나오는 코드를 작성하면 된다.

이처럼 while문은 끝을 모르는 반복을 할 때 주로 사용된다.

while True:
    c = input()
    print(c)
    if c == 'q':
        break

 

6079 : [기초-종합] 언제까지 더해야 할까?(py)

1, 2, 3 ... 을 계속 더해 나갈 때,
그 합이 입력한 정수(0 ~ 1000)보다 같거나 작을 때까지만
계속 더하는 프로그램을 작성해보자.

즉, 1부터 n까지 정수를 계속 더해 나간다고 할 때,
어디까지 더해야 입력한 수보다 같거나 커지는 지를 알아보고자하는 문제이다.

 

▷ 해설

입력 받은 값이 55일 경우 1부터 10까지 더하게 되면 55보다 크거나 같아지게 되므로 최종 출력 값은 10이 된다.

sum에서는 1부터 값을 더하며 n보다 크거나 같아질때를 if문으로 확인하는 코드를 작성하면 된다.  

n = int(input())

i = 1
sum = 0

while True:
    sum = sum+i
    if sum >= n:
        break
    i = i + 1

print(i)

 

6080 : [기초-종합] 주사위 2개 던지기(설명)(py)

1부터 n까지, 1부터 m까지 숫자가 적힌 서로 다른 주사위 2개를 던졌을 때,
나올 수 있는 모든 경우를 출력해보자.

 

▷ 참고

바깥쪽의 i 값이 1부터 n까지 순서대로 바뀌는 각각의 동안에
안쪽의 j 값이 다시 1부터 m까지 변하며 출력되는 코드이다.

조건선택 실행구조 안에 다른 조건선택 실행구조를 넣어 처리할 수 있는 것과 마찬가지로
반복 실행구조 안에 다른 반복 실행구조를 넣어 처리할 수 있다.

원하는 형태로 실행 구조를 결합하거나 중첩시킬 수 있다.

 

▷ 해설

두 주사위로 나올 수 있는 모든 경우의 수를 출력해야한다.

i 주사위가 1일때 j의 모든 값을 한번씩 출력하는 동작을 i의 숫자까지 반복하면 된다.

n, m = input().split()

for i in range(1, int(n)+1):
    for j in range(1, int(m)+1):
        print("%d %d"%(i, j))

+ Recent posts