[파이썬] COSpro 3급 기출문제 풀이 1 (1~3번 문제)

#1

[ 문제1 ] - 빈칸채우기

두 숫자를 더한 값을 구하려 합니다.

표준 입력으로 숫자 두 개를 입력받아, 두 수의 합을 출력하도록 코드를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요.

##### 입력 설명

표준 입력으로 숫자 두 개가 주어집니다.

* 두 수는 1 이상 100 이하인 자연수입니다.

##### 출력 설명

두 수의 합을 출력해주세요.

##### 입출력 예 1
입력
5 3
출력
8
설명
5와 3을 더하면 8이므로 8을 출력합니다.
##### 입출력 예 2
입력
1 4
출력
5
설명
1과 4를 더하면 5이므로 5를 출력합니다.


<풀이>

하나씩 받아서 연산을 하면, 이렇게 할 수 있다. 

a=int(input("숫자를 입력하세요:"))
b=int(input("숫자를 입력하세요:"))
print(a+b)

 

그런데, 두 숫자를 한번의 입력으로 받는다면, split() 내장함수를 써야 한다. 

a,b=input("두 숫자를 입력하세요:").split()
print(int(a)+int(b)

 

split()은 "쪼개다"

대신에 이렇게 받았을 때는 a,b변수에 str문자로 입력이 되므로, 연산할때 int() 정수로 형변환을 해줘야 한다.

 

str 은 string(문자열)

int 는 integer(정수)

 

-----------------------------------------------------------------------------------------

#2

[ 문제2 ] 

두 문자열 중 더 긴 문자열을 찾고자 합니다.

표준 입력으로 문자열 두 개를 입력받아, 두 문자열 중 더 긴 문자열을 출력해주세요.

 

##### 입력 설명

표준 입력으로 문자열 두 개가 주어집니다.

* 두 문자열의 길이는 1 이상 100 이하입니다.

* 두 문자열의 길이가 같은 경우는 없습니다.

 

##### 출력 설명

두 문자열 중 더 긴 문자열을 출력해주세요.

##### 입출력 예
입력
"HelloWorld"
"Programmingisfun"
출력
"Programmingisfun"

설명

첫 번째 입력받은 문자열의 길이는 10, 두 번째 문자열의 길이는 16입니다.

두 번째 문자열의 길이가 더 길므로 "Programmingisfun"을 출력합니다.

 

 

<풀이>

여기서 사용해야하는 내장함수는 len() - 문자열 길이 출력 함수

length (길이)    long(길다)
height (높이)    high(높다)
width (너비)     wide(넓다)
len() 함수는 length에서 앞 세글자만 따서 len이다. 

a= '감자'
print(len(a))

>> 2

 

if문을 결합해서 문자열이 긴 것을 찾아내면

a,b=input("두 단어를 입력하세요:").split()


if len(a)>len(b):
    print(a)
else:
    print(b)

 

 

#3

[ 문제3 ] 

별("*")로 밑변과 높이가 N인 직각삼각형을 거꾸로 출력하려고 합니다.

예를 들어, N이 5일 때 다음과 같이 출력합니다.

*****

****

***

**

*

표준 입력으로 자연수 N을 입력받아 밑변과 높이가 N인 직각삼각형을 거꾸로 출력해주세요.

 

##### 입력 설명

표준 입력으로 자연수 N이 주어집니다.

* N은 1 이상 100 이하입니다.

 

##### 출력 설명

별로 밑변과 높이가 N인 직각삼각형을 거꾸로 출력해주세요.

##### 입출력 예
입력
5
출력
*****
****
***
**
*

 

<풀이>

int일때 연산은
3*5     >> 15
str일때 연산은
"3"*5   >> "33333"

별이 n개 만큼 찍히려면 (연산을 사용하여 출력)

n=int(input("별을 찍을 개수를 입력하세요:"))

print(n*"*")

 

별이 n개 줄로 찍히려면 (반복문을 사용하여 출력)

n=int(input("별을 찍을 개수를 입력하세요:"))

for i in range(n):
    print("■")
    
>>
■
■
■
■
■

 

삼각형 모양으로 모양이 찍히려면 (반복문을 i를 사용하여 출력)

for i in range(0,5):
    print(i*"■")
    
>>

■
■■
■■■
■■■■

 

엇!, 0,1,2,3,4까지만 찍히네요... 1,2,3,4,5로 찍히게 하려면 어떻게 해야 할까요? 

for i in range(1,n+1):
    print(i*"■")

>>
■
■■
■■■
■■■■
■■■■■

 

자! 거의 다 왔습니다. 1,2,3,4,5로 찍혀 있는 걸 5,4,3,2,1로 만들려면 어떻게 해야할까요?

for i in range(5,0,-1):
    print(i*"■")
    
>>
■■■■■
■■■■
■■■
■■
■

 

마지막이네요! n을 입력받아, 가로/세로 n인 역 직각삼각형을 찍어보세요!

n=int(input('숫자를 입력하세요:'))
for i in range(n,0,-1):
    print(i*"*")

 

정답입니다! 짝짝짝 ^0^/