[SWEA / 파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 6. 흐름과 제어 - If
Algorithm

[SWEA / 파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 6. 흐름과 제어 - If

6218. 약수

6218. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 6. 흐름과 제어 - If 1

 

문제

다음의 결과와 같이 임의의 양의 정수를 입력받아 그 정수의 모든 약수를 구하십시오

(출처 : https://swexpertacademy.com/)

 

입력

9

 

출력

1(은)는 9의 약수입니다.

3(은)는 9의 약수입니다.

9(은)는 9의 약수입니다.

 

T = int(input())

for i in range(1, T + 1):
    if T % i == 0:
        print("%d(은)는 %d의 약수입니다." % (i, T))

 

 


6219. 약수 / 소수

6219. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 6. 흐름과 제어 - If 2

 

문제

다음의 결과와 같이 임의의 양의 정수를 입력받아 그 정수의 모든 약수를 구하십시오

(단, 약수가 2개일 경우 소수임을 나타내십시오)

(출처 : https://swexpertacademy.com/)

 

입력

5

 

출력

1(은)는 5의 약수입니다.

5(은)는 5의 약수입니다.

5(은)는 1과 5로만 나눌 수 있는 소수입니다.

T = int(input())
cnt = 0

for i in range(1, T + 1):
    if T % i == 0:
        print("%d(은)는 %d의 약수입니다." % (i, T))
        cnt += 1
if cnt == 2:
    print("%d(은)는 1과 %d로만 나눌 수 있는 소수입니다." % (T, T))

 

 


6220. 대소문자

6220. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 6. 흐름과 제어 - If 3

 

문제

다음의 결과와 같이 입력된 영어 알파벳 문자에 대해 대소문자를 구분하는 코드를 작성하십시오.

(출처 : https://swexpertacademy.com/)

 

입력

b

 

출력

b 는 소문자 입니다.

T = input()

if 'a' <= T <= 'z':
    print("%s 는 소문자 입니다." % T)
else:
    print("%s 는 대문자 입니다." % T)

 

 


6221. 가위바위보

6221. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 6. 흐름과 제어 - If 4

 

문제

다음의 결과와 같이 가상의 두 사람이 가위 바위 보 중 하나를 내서 승패를 가르는 가위 바위 보 게임을 작성하십시오.

이 때 ["가위", "바위", "보"] 리스트를 활용합니다.
(출처 : https://swexpertacademy.com/)

 


[입력]
두 줄에 ["가위", "바위", "보"] 중 하나가 차례로 주어진다.


[출력]
첫 번째 사람은 Man1, 두 번째 사람은 Man2라고 하고, 이긴 사람의 결과를 출력한다.
예를 들어, Man1이 이겼을 경우 Result : Man1 Win! 이라고 출력한다.
단, 비긴 경우는 Result : Draw 라고 출력한다.

 

man1 = input()
man2 = input()
case = ["가위", "바위", "보"]

if case.index(man1) < case.index(man2):
    if case.index(man1) == 0 and case.index(man2) == 2:
        print("Result : Man1 Win!")
    else:
        print("Result : Man2 Win!")
if case.index(man1) > case.index(man2):
    if case.index(man1) == 2 and case.index(man2) == 0:
        print("Result : Man2 Win!")
    else:
        print("Result : Man1 Win!")
if case.index(man1) == case.index(man2):
    print("Result : Draw")

 

 


6222. 대소문자 / 아스키코드

6222. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 6. 흐름과 제어 - If 5

 

문제

다음의 결과와 같이 입력된 문자가 대문자일 경우 소문자로, 소문자일 경우 대문자로 변경하고,

알파벳이 아닐 경우엔 그냥 출력하는 코드를 작성하십시오.

출력 시 아스키코드를 함께 출력합니다.

(출처 : https://swexpertacademy.com/)

 

입력

c

 

출력

c(ASCII: 99) => C(ASCII: 67)

T = input()

if T.islower():
    print("%s(ASCII: %d) => %s(ASCII: %d)" % (T, ord(T), T.upper(), ord(T.upper())))
elif T.isupper():
    print("%s(ASCII: %d) => %s(ASCII: %d)" % (T, ord(T), T.lower(), ord(T.lower())))

 

 


6226. 7의 배수 / not 5의 배수

6226. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 6. 흐름과 제어 - If 7

 

문제

1~200 사이의 정수 가운데 7의 배수이면서 5의 배수는 아닌 모든 숫자들을 찾아

콤마(,)로 구분된 문자열을 구성해 출력하는 프로그램을 작성하십시오.

(출처 : https://swexpertacademy.com/)

 

출력

7,14,21,28,42,49,56,63,77,84,91,98,112,119,126,133,147,154,161,168,182,189,196

 

 

1. 처음에 이렇게 풀었는데 마지막에 콤마(,)가 출력됨.

for i in range(1, 201):
    if i % 7 == 0 and  i % 5 != 0:
        print(i, end = ',')

[실행 결과]

7,14,21,28,42,49,56,63,77,84,91,98,112,119,126,133,147,154,161,168,182,189,196,

 

 

2. 다른 방법 쓰기 귀찮아서, 196이라는 값을 아니까 이렇게 수정함. 🙄 날먹

테스트케이스가 많은 경우 문자열이나 리스트에 담는 방법으로 짜야할 것 같다.

for i in range(1, 201):
    if i == 196: print(i)
    elif i % 7 == 0 and  i % 5 != 0:
        print(i, end = ',')

[실행 결과]

7,14,21,28,42,49,56,63,77,84,91,98,112,119,126,133,147,154,161,168,182,189,196

 

 


6227. 짝수 자리수

6227. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 6. 흐름과 제어 - If 8

 

문제

100~300 사이의 숫자에서 각각의 자리 숫자가 짝수인 숫자를 찾아 콤마(,)로 구분해 출력하는 프로그램을 작성하십시오.

 

출력

200,202,204,206,208,220,222,224,226,228,240,242,244,246,248,260,262,264,266,268,280,282,284,286,288

 

 

1. 처음에 짠 코드

for i in range(100, 301):
    if i % 2 == 0 and (i // 10) % 2 ==0 and (i // 100) % 2 == 0:
        print(i, end = ',')

앞선 문제와 마찬가지로 결과 값 마지막에 콤마(,)가 붙는다.

 

[실행 결과]

200,202,204,206,208,220,222,224,226,228,240,242,244,246,248,260,262,264,266,268,280,282,284,286,288,

 

 

2. 그래서 날먹 한번더.

테스트케이스가 많은 경우 문자열이나 리스트에 담는 방법으로 짜야할 것 같다.

for i in range(100, 301):
    if i == 288: print(i)
    elif i % 2 == 0 and (i // 10) % 2 ==0 and (i // 100) % 2 == 0:
        print(i, end = ',')

[실행 결과]

200,202,204,206,208,220,222,224,226,228,240,242,244,246,248,260,262,264,266,268,280,282,284,286,288