코딩도장 파이썬 심사문제 # 2

chaerin·2021년 1월 2일
0

PYTHON

목록 보기
6/17
post-thumbnail

15.4 교통카드 시스템 만들기

표준 입력으로 나이(만 나이)가 입력됩니다(입력 값은 7 이상 입력됨). 교통카드 시스템에서 시내버스 요금은 다음과 같으며 각 나이에 맞게 요금을 차감한 뒤 잔액이 출력되게 만드세요(if, elif 사용). 현재 교통카드에는 9,000원이 들어있습니다.

  • 어린이(초등학생, 만 7세 이상 12세 이하): 650원
  • 청소년(중∙고등학생, 만 13세 이상 18세 이하): 1,050원
  • 어른(일반, 만 19세 이상): 1,250원
[입력]
17
[결과]
7950

[입력]
12
[결과]
8350

point ✅

  • 조건식을 만들 때 age >= 7 and age <= 12와 age >= 13 and age <= 18처럼 두 조건식을 and 연산자로 판단해도 된다.
  • balance에서 요금을 단순히 빼는 것이 아니라 -= 연산자를 사용하여 뺀 결과를 다시 balance에 저장해야 한다.(balance = balance - 요금 형식도 맞음)

16.6 구구단 출력하기

표준 입력으로 정수가 입력됩니다. 입력된 정수의 구구단을 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다). 출력 형식은 숫자 숫자 = 숫자처럼 만들고 숫자와 , = 사이는 공백을 한 칸 띄웁니다.

[입력]
2
[결과]
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18

point ✅

  • 구구단은 1부터 9까지의 곱셈이므로 for i in range(1, 10):과 같이 반복문을 만든다.
  • print(a, '*', i, '=', a * i)와 같이 숫자 중간에 '*'과 '='를 넣어준다.

17.6 교통카드 잔액 출력하기

표준 입력으로 금액(정수)이 입력됩니다. 1회당 요금은 1,350원이고, 교통카드를 사용했을 때마다의 잔액을 각 줄에 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다). 단, 최초 금액은 출력하지 않아야 합니다. 그리고 잔액은 음수가 될 수 없으며 잔액이 부족하면 출력을 끝냅니다.

[입력]
13500
[결과]
12150
10800
9450
8100
6750
5400
4050
2700
1350
0

point ✅

  • 교통카드를 사용할 수 있는 최소 잔액은 1회 요금과 같은 1,350원이므로 조건식은 amount >= 1350으로 지정하여 1,350원 이상일 때만 반복하도록 만든다.
  • 최초 금액은 출력하지 않고 사용했을 때마다의 잔액만 출력해야 하므로 amount -= 1350 다음에 print가 와야 한다.

18.6 두 수 사이의 숫자 중 3으로 끝나지 않는 숫자 출력하기

표준 입력으로 정수 두 개가 입력됩니다(첫 번째 입력 값의 범위는 1~200, 두 번째 입력 값의 범위는 10~200이며 첫 번째 입력 값은 두 번째 입력 값보다 항상 작습니다). 다음 소스 코드를 완성하여 첫 번째 정수와 두 번째 정수 사이의 숫자 중 3으로 끝나지 않는 숫자가 출력되게 만드세요.

[입력]
1 20
[결과]
1 2 4 5 6 7 8 9 10 11 12 14 15 16 17 18 19 20

[입력]
21 33
[결과]
21 22 24 25 26 27 28 29 30 31 32

point ✅

  • 3으로 끝나지 않는 숫자만 출력되도록 하려면 if i % 10 == 3:과 같이 if 조건문을 만들어서 3으로 끝나는 숫자일 때 continue로 건너뛴다.
  • continue로 코드를 건너뛰면 아래에 있는 i += 1까지 건너뛰게 되므로 continue 위에 i += 1을 넣어주어야 한다.
  • 숫자를 출력하는 print가 아래에 있으므로 stop의 값까지 출력하려면 i가 stop과 같을 때는 그냥 넘어가고 루프를 한 번 더 실행하여 i가 stop보다 클 때 루프를 중단하는 것이다.

19.6 산 모양으로 별 출력하기

표준 입력으로 삼각형의 높이가 입력됩니다. 입력된 높이만큼 산 모양으로 별을 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다). 이때 출력 결과는 예제와 정확히 일치해야 합니다. 모양이 같더라도 공백이나 빈 줄이 더 들어가면 틀린 것으로 처리됩니다.

[입력]
5
[결과]
    *
   ***
  *****
 *******
*********

point ✅

  • 반복문을 두 개 사용하여 가로 방향을 반씩 출력
  • height의 값이 5일 때 세로크기 5, 가로크기 5인 왼쪽의 삼각형 반쪽을 먼저 만들어 준다.
for j in reversed(range(height)):
        if j > i:
            print(" ", end="")
        else:
            print("*", end="")
  • 나머지 삼각형 반쪽도 출력해 준다.
for j in range(height):
        if j < i:
            print("*", end="")
  • 가로 방향의 남은 반쪽을 출력했다면 print를 사용하여 줄바꿈을 해주면 끝.

20.8 5와 7의 배수, 공배수 처리하기

표준 입력으로 정수 두 개가 입력됩니다(첫 번째 입력 값의 범위는 1~1000, 두 번째 입력 값의 범위는 10~1000이며 첫 번째 입력 값은 두 번째 입력 값보다 항상 작습니다). 첫 번째 정수부터 두 번째 정수까지 숫자를 출력하면서 5의 배수일 때는 'Fizz', 7의 배수일 때는 'Buzz', 5와 7의 공배수일 때는 'FizzBuzz'를 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다).

[입력]
35 40
[결과]
FizzBuzz
36
37
38
39
Fizz

point ✅

  • 첫 번째 정수에서 두 번째 정수까지 숫자를 출력하려면 for i in range(a, b + 1):와 같이 반복문을 작성

21.6 별 그리기

표준 입력으로 꼭지점 개수(정수)와 선의 길이(정수)가 입력됩니다(꼭지점 개수의 입력 범위는 5~10, 선의 길이 입력 범위는 50~150입니다). 다음 소스 코드를 완성하여 꼭지점 개수와 선의 길이에 맞는 별이 그려지게 만드세요. 별을 그릴 때는 현재 위치부터 오른쪽으로 이동해서 시작해야 하며 시계 방향으로 그려야 합니다.

[표준 입력]
5 150
[결과]


point ✅
1. 선을 한 번 그리고 오른 쪽으로 (360 / n) * 2도 회전
2. 다시 선을 그려서 별 꼭지점을 그린다.
3. 왼쪽으로 360 / n도를 회전해서 다음 꼭지점을 그릴 수 있도록 만든다.

  • 이렇게 n번 반복하면 별을 그릴 수 있다.

0개의 댓글