티스토리 뷰

[78] 짝수 합 구하기

📖question

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

입력
정수 1개가 입력된다. (0 ~ 100)

5

출력
1부터 입력된 수까지 짝수의 합을 출력한다.

6

Tip::

  1. range()함수의 첫 인자를 2로하고, 세 번째 인자를 2로 하면 2에서 2씩 증가하기 때문에 모든 숫자가 짝수가 된다. 따라서 이를 모두 더해주면 되는 것.

✍️answer

sum = 0
num = int(input())
for i in range(0, num+1, 2):
    sum = sum+i
print(sum)

 

 

[79] 원하는 문자가 입력될 때까지 반복 출력하기

📖question

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

입력
문자들이 1개씩 계속해서 입력된다.

b k d l q g a c

출력
'q'가 입력될 때까지 입력된 문자를 줄을 바꿔 한 줄씩 출력한다.

x
b
k
d
l
q

Tip::

  1. 입력값이 공백을 기준으로 한 번에 입력되기 때문에 input()을 매번 호출할 필요가 없다.
  2. 입력된 문자열의 길이만큼만 반복하여 출력하면 되기에 for()문을 사용해도 된다.

✍️answer

# for 풀이
word = input().split()
for i in word:
    if i == 'q':
        break
    print(i)

# while 풀이
i = 0
word = input().split()
while word[i] != 'q':
    print(word[i])
    i = i+1

 

[80] 언제까지 더해야 할까?

📖question

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

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

입력
정수 1개가 입력된다.

55

출력
1, 2, 3, 4, 5 ... 를 순서대로 계속 더해 합을 만들어가다가, 입력된 정수와 같거나 커졌을 때, 마지막에 더한 정수를 출력한다.

10

✍️answer

# for 풀이
num = int(input())
sum = 0
for i in range(1, num+1):
    sum = sum+i
    if sum >= num:
        break
print(i)

# while 풀이
num = int(input())
sum = 0
i = 0
while sum < num:
    i = i+1
    sum = sum+i
print(i)

 

[81] 주사위를 2개 던지면?

📖question

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

입력
주사위 2개의 면의 개수 n, m이 공백을 두고 입력된다.
단, n, m은 10이하의 자연수

2 3

출력
나올 수 있는 주사위의 숫자를 한 세트씩 줄을 바꿔 모두 출력한다.
첫 번째 수는 n, 두 번째 수는 m으로 고정해 출력하도록 한다.

1 1
1 2
1 3
2 1
2 2
2 3

Tip::
중첩의 원리...

  1. 반복 실행 구조도 조건 실행 구조와 마찬가지로 중첩의 원리가 적용된다.
  2. 반복 실행 구조를 중첩하면 원하는 반복 구조를 다양하게 만들어 낼 수 있다.

✍️answer

n, m = map(int, input().split())
for i in range(1, n+1):
    for j in range(1, m+1):
        print(i, j)

 

[82] 16진수 구구단

📖question

16진수(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F)를 배운 영일(01)이는 16진수끼리 곱하는 16진수 구구단에 대해서 궁금해졌다.

A, B, C, D, E, F 중 하나가 입력될 때, 1부터 F까지 곱한 16진수 구구단의 내용을 출력해보자.
(단, A ~ F 까지만 입력된다.)

입력
16진수로 한 자리 수가 입력된다.
단, A ~ F 까지만 입력된다.

B

출력
입력된 16진수에 1~F까지 순서대로 곱한, 16진수 구구단을 줄을 바꿔 출력한다.
계산 결과도 16진수로 출력해야 한다.

B*1=B
B*2=16
B*3=21
B*4=2C
B*5=37
B*6=42
B*7=4D
B*8=58
B*9=63
B*A=6E
B*B=79
B*C=84
B*D=8F
B*E=9A
B*F=A5

Tip::

  1. 16진수 변환 함수 hex()를 이용해보자.
  2. 소문자를 대문자로 변환하는 함수는 문자열의 메소드 중 upper()가 있다.

✍️answer

dan = input()
for i in range(1, 16):
    gop = hex(i)[2:].upper()
    dap = hex(int(dan, 16)*i)[2:].upper()  # 문자를 정수로 바꾸는 메서드
    print('{}*{}={}'.format(dan, gop, dap))

 

[83] 3 6 9 게임의 왕이 되자

📖question

3 6 9 게임을 하던 영일이는 3 6 9 게임에서 잦은 실수로 계속해서 벌칙을 받게 되었다.
3 6 9 게임의 왕이 되기 위한 마스터 프로그램을 작성해 보자.

**3 6 9 게임은?**
여러 사람이 순서를 정해 순서대로 수를 부르는 게임이다.
만약 369 가 들어간 수를 자신이 불러야 하는 상황이면, 대신 "박수" 를 쳐야 한다.
33까지 진행했다면? "짝짝"과 같이 박수를 두 번 치는 형태도 있다.

입력
10 보다 작은 정수 1개가 입력된다. (1 ~ 9)

9

출력
1 부터 그 수까지 순서대로 공백을 두고 수를 출력하는데, 3 또는 6 또는 9인 경우 그 수 대신 영문 대문자 X 를 출력한다.

1 2 X 4 5 X 7 8 X

Tip::

  1. 원래 369 게임은 숫자 중 3,6,9가 포함되어 있을 때 박수를 치는 게임이다.
    따라서 #2의 코드가 정답이어야 하지만 코드업에서는 3의 배수를 정답으로 처리하므로 #1과 같이 풀어야한다.
    • 결론 : 3의 배수일 때 'X'가 출력되도록 해야한다.

✍️answer

num = int(input())
for i in range(1, num+1):
    if i % 3 == 0:
        print('X')
    else:
        print(i)

'Python > 코드업 기초 100제' 카테고리의 다른 글

14. 1차원 배열(1)  (0) 2022.05.16
13. 종합(2)  (0) 2022.05.15
12. 반복실행구조  (0) 2022.05.15
11. 조건/선택실행구조  (0) 2022.05.15
10. 삼항연산  (0) 2022.05.15
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday