줴림이 공부하줴림
[SWEA] [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 6. 흐름제어 연습문제 본문
급하게 코테 준비한다고 벼락치기처럼 SWEA를 켰다. 비록 지금은 벼락치기로 시작했지만 꾸준히 하면 언젠가는 코딩 잘하게 되겠지...
1. 다음의 결과와 같이 임의의 양의 정수를 입력받아 그 정수의 모든 약수를 구하십시오.
T = int(input())
for i in range(1, T+1):
if T % i == 0:
print("%d(은)는 %d의 약수입니다." % (i, T))
처음에 정수형으로 안넣고 f-string으로 출력해서 그런가 제출할 때 fail 나옴. 근데 왜 fail이냐고 혼자 분조장처럼 울부짖고 있었다.
2. 다음의 결과와 같이 임의의 양의 정수를 입력받아 그 정수의 모든 약수를 구하십시오. (단, 약수가 2개일 경우 소수임을 나타내십시오)
T = int(input())
count = 0
for i in range(1, T+1):
if (T % i) == 0:
print("%d(은)는 %d의 약수입니다." % (i, T))
count += 1
if count == 2:
print("%d(은)는 %d과 %d로만 나눌 수 있는 소수입니다." % (T, 1, T))
이번에도 fail이 떠서 또 왜 그러냐고 빤히 쳐다보다가 'if count == 2:' 문을 for문 안에 넣어버렸다는 걸 깨달았다. 그러니 fail이 뜨지.
3. 다음의 결과와 같이 입력된 영어 알파벳 문자에 대해 대소문자를 구분하는 코드를 작성하세요.
num = int(input())
alpha = input()
for i in range(1, num+1):
if alpha.isupper():
print("#%d %s 는 대문자 입니다." % (i, alpha))
else:
print("#%d %s 는 소문자 입니다." % (i, alpha))
input으로 받은 입력은 문자열로 형변환된다.. 꼭 기억해두자. %s가 아니고 %c로 받으려 한 나처럼 되지 말고.
4. 다음의 결과와 같이 가상의 두 사람이 가위 바위 보 중 하나를 내서 승패를 가르는 가위 바위 보 게임을 작성하십시오.
이제 슬슬 하기 싫어진다. 하지만 이렇게라도 하지 않으면 영원히 안할 것 같으니까 빙수 하나 먹어주고 다시 시작한다.
man1 = input()
man2 = input()
if man1 == "가위":
if man2 == "가위":
print("Result : Draw")
elif man2 == "보":
print("Result : Man1 Win!")
else:
print("Result : Man2 Win!")
elif man1 == "바위":
if man2 == "바위":
print("Result : Draw")
elif man2 == "가위":
print("Result : Man1 Win!")
else:
print("Result : Man2 Win!")
elif man1 == "보":
if man2 == "보":
print("Result : Draw")
elif man2 == "주먹":
print("Result : Man1 Win!")
else:
print("Result : Man2 Win!")
길고 복잡해도 내가 생각할 수 있는 최선이었다. 아니 근데,

test 돌렸을 때는 뭔 에러 메시지 뜨면서 "Output file is not generated" 이러길래 또 코드 뭐 오류 났나 하고 한 5번은 다시 봤는데 아무리 봐도 잘못 된 거 없어서

VScode에서 돌려봤는데 결과 제대로 나와서 밑져야 본전이다 하고 그냥 제출 눌렀는데

????????? 진짜 뭐지 싶다. 뭐임?
5. 다음의 결과와 같이 입력된 문자가 대문자일 경우 소문자로, 소문자일 경우 대문자로 변경하고, 알파벳이 아닐 경우엔 그냥 출력하는 코드를 작성하십시오. 출력 시 아스키코드를 함께 출력합니다.
letter = input()
ASC = ord(letter)
if letter.isupper():
tmp = letter.lower()
print("%d(ASCII: %d) => %d(ASCII: %d)" % (letter, ASC, tmp, ASC+32))
elif letter.islower():
tmp = letter.upper()
print("%s(ASCII: %d) => %s(ASCII: %d)" % (letter, ASC, tmp, ASC-32))
else:
print("%s(ASCII: %d) => %s(ASCII: %d)" % (letter, ASC, letter, ASC))
아스키코드 나와서 살짝 당황스러웠다. 아스키코드를 구하는 함수를 기억도 못하는데 문제를 어케 풀어~
결국 인터넷에서 자문을 구했고(...)
사이트에서 test하는데 이번엔 seg fault 나와서 또 VScode의 도움을 받아서 오류 고치고..
그래도 이번엔 fail 안뜨고 바로 pass라고
6. 1~200 사이의 정수 가운데 7의 배수이면서 5의 배수는 아닌 모든 숫자들을 찾아 콤마(,)로 구분된 문자열을 구성해 출력하는 프로그램을 작성하십시오.
res = ''
for i in range(1, 201):
if (i % 7) == 0:
if (i % 35) != 0:
res += str(i) + ','
print(res[:-1])
7. 1~200 사이의 정수 가운데 7의 배수이면서 5의 배수는 아닌 모든 숫자들을 찾아 콤마(,)로 구분된 문자열을 구성해 출력하는 프로그램을 작성하십시오.
갑자기 문제 8로 떠서 내가 중간에 문제 하나 빼먹었나 했는데 그냥 단순 페이지에서 오류가 난 거였다.
res = ''
for i in range(100, 301):
a = i % 10 # 일의 자리
b = (i // 10) % 10 # 십의 자리
c = i // 100 # 백의 자리
if (a % 2 == 0) and (b % 2 == 0) and (c % 2 == 0):
res += str(i)+','
print(res[:-1])
흐름제어 연습문제 끝!!! 아니 근데 이거 기초인데 지금 벌써 12시 넘었어...
'Study > SWEA' 카테고리의 다른 글
[SWEA] [파이썬 프로그래밍 기초(2) 파이썬의 기본 응용] 5. 객체지향 (1) | 2025.04.03 |
---|---|
[SWEA] [파이썬 프로그래밍 기초(2) 파이썬의 기본 응용] 4. 문자열 (0) | 2025.04.02 |
[SWEA] [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 9. 내장 함수 (0) | 2025.04.02 |
[SWEA] [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 8. 함수 기초 (0) | 2025.04.02 |
[SWEA] [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 7. 흐름 제어 - 반복 (0) | 2025.04.02 |