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

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

 

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

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

 

문제집 / Python 기초 100제

 

codeup.kr

 

6066 : [기초-조건/선택실행구조] 정수 3개 입력받아 짝/홀 출력하기(설명)(py)

3개의 정수(a, b, c)가 입력되었을 때, 짝(even)/홀(odd)을 출력해보자.

 

▷ 참고

if 조건식 :  #조건식을 평가해서...
  실행1      #True 인 경우 실행시킬 명령들...
  실행2
else :        
  실행3      #False 인 경우 실행시킬 명령들...
  실행4
실행5       #조건식과 상관없는 다음 명령

 

else 는 if 없이 혼자 사용되지 않는다.
또한, else 다음에는 조건식이 없는 이유는? True(참)가 아니면 False(거짓)이기 때문에... 
조건식의 평가 결과는 True 아니면 False 로 계산되기 때문이다.

 

▷ 해설

문제는 3개의 조건문을 이용해 풀어야 한다.

입력 된 세 값을 각자 홀수 인지 짝수 인지 구하는 문제로 n%2 == 0은 짝이고 n%2 == 1은 홀이다. 

모두 홀이나 짝 두가지 경우가 나오므로 if문으로 표현할때 else를 이용하면 그 외의 경우를 표현가능하다.

 

밑의 풀이법은 if문을 다양하게 사용해본 결과물이다. 세가지 방법으로 똑같은 문제를 해결가능하다.

elif는 else if로 if의 조건외에 다른 조건을 걸기 위해 사용되는 문법이다. 

a, b, c = input().split()

a = int(a)
b = int(b)
c = int(c)

# a가 짝인 경우만 even이 출력되고 그외의 경우 odd가 출력 
if a % 2 == 0:
	print("even")
else:
	print("odd")


# b가 홀인 경우만 odd가 출력되고 그 외의 경우 even이 출력
if b % 2 == 1:
	print("odd")
else:
	print("even")
    
# c가 짝인 경우 even이 출력되고 홀인 경우 odd가 출력
if c % 2 == 0:
	print("even")
elif c % 2 == 1:
	print("odd")

 

6067 : [기초-조건/선택실행구조] 정수 1개 입력받아 분류하기(설명)(py)

0이 아닌 정수 1개가 입력되었을 때, 음(-)/양(+)과 짝(even)/홀(odd)을 구분해 분류해보자.
음수이면서 짝수이면, A
음수이면서 홀수이면, B
양수이면서 짝수이면, C
양수이면서 홀수이면, D
를 출력한다.

 

▷ 참고

조건/선택 실행구조 안에 다시 조건/선택 실행구조를 "중첩"할 수가 있다.

또한, 중첩된 조건은

 

if (n<0) and (n%2==0) :
    print('A')

 

와 같이 논리연산자(not, and, or)를 이용해 합쳐 표현할 수도 있다.
비교연산(<, >, <=, >=, ==, !=) 의 계산 결과는 True 또는 False 의 불(boolean) 값이고,
불 값들 사이의 논리연산(not, and, or)의 결과도 True 또는 False 의 불 값이다.

 

▷ 해설

두 가지 풀이법이 있다.

첫번째 방법은 if ~ else만을 가지고 문제를 해결하는 방법이다. 처음엔 음과 양을 나눈 뒤 이후 홀 수 인지 짝수인지 나누게 된다.

두번째 방법은 if ~ else와 추가적으로 논리연산자를 같이 사용하면된다 총 4가지의 결과에 대한 모든 조건을 표현가능하다.

n = int(input())

if n < 0:
    if n % 2 == 0:
    	# 음수이면서 짝수
        print('A')
    else:
    	# 음수이면서 홀수
        print('B')
else:
    if n % 2 == 0:
    	# 양수이면서 짝수
        print('C')
    else:
    	# 양수이면서 홀수
        print('D')
n = int(input())

if (n % 2 == 0) and n < 0:
	# 음수이면서 짝수
	print('A')
elif (n % 2 == 1) and n < 0:
	# 음수이면서 홀수
    print('B')
elif (n % 2 == 0) and n > 0:
	# 양수이면서 짝수
    print('C')
else:
	# 그 외의 경우 = 양수이면서 홀수
	print('D')

 

6068 : [기초-조건/선택실행구조] 점수 입력받아 평가 출력하기(설명)(py)

점수(정수, 0 ~ 100)를 입력받아 평가를 출력해보자.

평가 기준
점수 범위 : 평가
 90 ~ 100 : A
 70 ~   89 : B
 40 ~   69 : C
   0 ~   39 : D
로 평가되어야 한다.

 

▷ 참고

여러 조건들을 순서대로 비교하면서 처리하기 위해서 조건문을 여러 번 중첩할 수 있다.

if 조건식1 :
  ...
else :
  if 조건식2 :
    ...
  else :
    if 조건식3 :
      ...
    else :

      ...

...
와 같이 조건/선택 실행 구조를 겹쳐 작성하면 순서대로 조건을 검사할 수 있다.
어떤 조건이 참이면 그 부분의 내용을 실행하고 전체 조건/선택 구조를 빠져나가게 된다.

if 조건식1 : 
  ... 
elif 조건식2 : 
  ... 
elif 조건식3 : 
  ... 
else : 
  ...
도 똑같은 기능을 한다. elif는 else if 의 짧은 약어라고 생각해도 된다.
elif 를 사용하면 if ... else ... 구조를 겹쳐 사용할 때처럼, 여러 번 안 쪽으로 들여쓰기 하지 않아도 된다.

 

▷ 해설

성적과 같이 특정 범위를 위해 나누는 조건은 대부분 elif로 처리한다.

elif를 사용하면 들여쓰기가 없어지며 코드가 더 알아보기 쉬워져서 자주 사용한다.

n = int(input())

if n >= 90:
	print('A')
elif n >= 70:
	print('B')
elif n >= 40:
	print('C')
else:
	print('D')

 

6069 : [기초-조건/선택실행구조] 평가 입력받아 다르게 출력하기(py)

평가를 문자(A, B, C, D, ...)로 입력받아 내용을 다르게 출력해보자.

평가 내용
평가 : 내용
A : best!!!
B : good!!
C : run!
D : slowly~
나머지 문자들 : what?

 

▷ 해설

한 문자를 입력 받으면 A, B, C, D의 경우 해당 문자가 출력되고 그외에는 what?을 출력하면 된다.  

c = input()

if c == 'A':
	print('best!!!')
elif c == 'B':
	print('good!!')
elif c == 'C':
	print('run!')
elif c == 'D':
	print('slowly~')
else:
	print('what?')

 

6070 : [기초-조건/선택실행구조] 월 입력받아 계절 출력하기(설명)(py)

월이 입력될 때 계절 이름이 출력되도록 해보자.

월 : 계절 이름
12, 1, 2 : winter
  3, 4, 5 : spring
  6, 7, 8 : summer
  9, 10, 11 : fall

 

▷ 참고

때때로 수들의 특징을 관찰하고 이용하면 매우 간단히 해결할 수도 있다.

 

▷ 해설

사계절은 세달마다 바뀌기 때문에 3이 이번 문제의 포인트이다.

spring을 3으로 나누면 몫으로 1이 나오게 된다.

summer는 3으로 나누면 몫이 2, fall은 몫이 3으로 나온다.다음 특성이 유일하게 통하지 않는게 winter이므로 winter을 예외에 두면 된다.

 

그외에도 이 문제를 푸는 방법은 범위를 이용해 푸는 방법(spring은 3보다 같거나 크고 6보다 작다 ... )도 있고비교연산자와 관계연산자를 이용해 푸는 방법(spring은 3 또는 4 또는 5여야 한다)등 다양하다.

m = int(input())

if m // 3 == 1:
	print('spring')
elif m // 3 == 2:
	print('summer')
elif m // 3 == 3:
	print('fall')
else:
	print('winter')
m = int(input())

if m >= 3 and m < 6:
	print('spring')
elif m >= 6 and m < 9:
	print('summer')
elif m >= 9 and m < 12:
	print('fall')
else:
	print('winter')
m = int(input())

if m == 3 or m == 4 or m == 5:
	print('spring')
elif m == 6 or m == 7 or m == 8:
	print('summer')
elif m == 9 or m == 10 or m == 11:
	print('fall')
else:
	print('winter')

+ Recent posts