profile image

L o a d i n g . . .

1067 : [기초-조건/선택실행구조] 정수 1개 입력받아 분석하기

 

문제 : 정수 1개가 입력되었을 때, 음(minus)/양(plus)과 짝(even)/홀(odd)을 출력해보자.

 

정답 :

 


1068 : [기초-조건/선택실행구조] 정수 1개 입력받아 평가 출력하기

 

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

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

 

정답 : 

if elif를 이용해 점수 범위에 해당하는 등급을 출력할 때, 양쪽 점수의 범위를 모두 입력하지 않아도 됌.( 70<=score<=90과 같은 식으로 X)

조건문은 어차피 위에서 밑으로 흐르는데, 위에 조건문에 해당되지 않을 때 밑으로 향하기 때문임.

 


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

 

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

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

 

정답 : 

 


1070 : [기초-조건/선택실행구조] 월 입력받아 계절 출력하기

 

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


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

 

정답 : 

 


1071 : [기초-반복실행구조] 0 입력될 때까지 무한 출력하기1

 

문제 : 정수가 순서대로 입력된다. 0이 아니면 입력된 정수를 출력하고, 0이 입력되면 출력을 중단해보자.

 

정답 : 

 


1072 : [기초-반복실행구조] 정수 입력받아 계속 출력하기

 

문제 : n개의 정수가 순서대로 입력된다. n개의 입력된 정수를 순서대로 출력해보자.

 

정답 :

input().split()를 이용하면 여러 개의 입력값을 받을 수 있는데, 이때 입력값들은 리스트 형태로 들어간다.

 


1073 : [기초-반복실행구조] 0 입력될 때까지 무한 출력하기2

 

문제 : 정수가 순서대로 입력된다. 0이 아니면 입력된 정수를 출력하고, 0이 입력되면 출력을 중단해보자.

 

정답 : 

 


1074 : [기초-반복실행구조] 정수 1개 입력받아 카운트다운 출력하기1

 

문제 : 정수(1 ~ 100) 1개가 입력되었을 때 카운트다운을 출력해보자.

1씩 줄이면서 한 줄에 하나씩 1이 될 때까지 출력한다.

 

정답 :

다음 문제와 비교했을 때, 이 코드는 입력된 숫자부터 1씩 줄어들며 1까지 출력한다.

 


1075 : [기초-반복실행구조] 정수 1개 입력받아 카운트다운 출력하기2

 

문제 : 정수(1 ~ 100) 1개가 입력되었을 때 카운트다운을 출력해보자.

1씩 줄이면서 한 줄에 하나씩 0이 될 때까지 출력한다.

 

정답 :

앞의 문제와 비교했을 때, 이 코드는 (입력된 수-1)부터 0까지 출력한다.

 


1076 : [기초-반복실행구조] 문자 1개 입력받아 알파벳 출력하기

 

문제 : 영문자(a ~ z) 1개가 입력되었을 때 그 문자까지의 알파벳을 순서대로 출력해보자.

 

정답 :

영문자를 입력받아 ord()를 이용해 정수로 변환해 준 뒤, while 문을 이용해 'a'를 정수로 변환한 값부터 입력값까지 반복해서 출력한다.

 


1077 : [기초-반복실행구조] 정수 1개 입력받아 그 수까지 출력하기

 

문제 : 정수(0 ~ 100) 1개를 입력받아 0부터 그 수까지 순서대로 출력해보자.

 

정답 :

range(숫자) : 0부터 숫자-1까지의 숫자들을 연속해서 생성한다.

 


1078 : [기초-종합] 짝수 합 구하기

 

문제 : 정수(1 ~ 100) 1개를 입력받아 1부터 그 수까지 짝수의 합을 구해보자.

 

정답 :

 


1079 : [기초-종합] 원하는 문자가 입력될 때까지 반복 출력하기

 

문제 : 'q'가 입력될 때까지 입력한 문자를 계속 출력하는 프로그램을 작성해보자.

 

정답 :

 


1080 : [기초-종합] 언제까지 더해야 할까?

 

문제 : 1, 2, 3 ... 을 계속 더해 나갈 때, 그 합이 입력한 정수(0 ~ 1000)보다 같거나 작을 때까지 계속 더하는 프로그램을 작성해보자.

즉, 순서대로 계속 더해 합을 만들어가다가, 입력된 정수와 같거나 커졌을 때, 마지막에 더한 정수를 출력한다.

 

정답 :

while 문을 이용해 합이 입력된 정수와 같거나 커졌을 때, 마지막에 더한 정수를 출력한다.

 


1081 : [기초-종합] 주사위를 2개 던지면?

 

문제 : 1부터 n까지, 1부터 m까지 숫자가 적힌 서로 다른 주사위 2개를 던졌을 때 나올 수 있는 모든 경우를 출력해보자.

 

정답 :

 


1082 : [기초-종합] 16진수 구구단?

 

문제 : A, B, C, D, E, F 중 하나가 입력될 때, 1부터 F까지 곱한 16진수 구구단의 내용을 출력해보자.

 

정답 :

입력된 알파벳과 곱할 16진수(1부터 F까지)를 모두 10진수 형태로 변환한 뒤 곱셈을 하고, 서식지정자 %X 를 이용해 16진수 형태로 출력해준다.

 


1083 : [기초-종합] 3 6 9 게임의 왕이 되자!

 

문제 : 10 보다 작은 정수 1개가 입력된다.

1 부터 그 수까지 순서대로 공백을 두고 수를 출력하는데, 3 또는 6 또는 9인 경우 그 수 대신 영문 대문자 X 를 출력한다.

 

정답 :

 


1084 : [기초-종합] 빛 섞어 색 만들기

 

문제 : 빨강(r), 초록(g), 파랑(b) 각각의 빛의 개수가 주어질 때, (빛의 강약에 따라 0 ~ n-1 까지 n가지의 빛 색깔을 만들 수 있다.)
주어진 rgb 빛들을 다르게 섞어 만들 수 있는 모든 경우의 조합(r g b)과 총 가짓 수를 계산해보자.

 

정답 :

for문을 세 번 중첩하면 rgb 빛들을 다르게 섞어 만들 수 있는 모든 경우를 구할 수 있다.

 


1085 : [기초-종합] 소리 파일 저장용량 계산하기

 

문제 : 1초 동안 마이크로 소리강약을 체크하는 수를 h, 한 번 체크한 결과를 저장하는 비트 b, 좌우 등 소리를 저장할 트랙 개수인 채널 c, 녹음할 시간 s가 주어질 때, 필요한 저장 용량을 계산하는 프로그램을 작성해보자. ( 필요한 저장 공간을 MB 단위로 바꾸어 출력한다.)

실제로 일반적인 CD 음질(44.1KHz, 16bit, 스테레오)로 1초 동안 저장하려면 44100 * 16 * 2 * 1 bit의 저장공간이 필요하다. 

 

정답 :

1bit = 8byte

1byte = 1024KB

1MB = 1024MB

 

bit 단위를 MB 단위로 바꾸려면, 8로 나누어 byte 단위로 바꿔주고, 다시 1024로 나누어 KB 단위로 바꿔주고, 마지막으로 1024로 나누어 MB 단위로 바꾸면 된다.

 


1086 : [기초-종합] 그림 파일 저장용량 계산하기

 

문제 : 이미지의 가로 해상도 w, 세로 해상도 h, 한 픽셀을 저장하기 위한 비트 b 가 주어질 때, 압축하지 않고 저장하기 위해 필요한 저장 용량을 계산하는 프로그램을 작성해 보자. (단, 필요한 저장 공간을 MB 단위로 바꾸어 출력한다.)

 

참고 : 보통 그림을 구성하는 한 점(pixel, 픽셀)의 색상을 빨강(r), 초록(g), 파랑(b)의 3가지의 빛의 세기 값으로 따로 변환하여 저장한다.

예를 들어 r, g, b 각 색에 대해서 8비트(0~255, 256가지 가능)씩을 사용한다고 하면, 한 점의 색상은 3가지 r, g, b의 8비트+8비트+8비트로 총 24비트로 표현해서 총 2^24 가지의 서로 다른 빛의 색깔을 사용할 수 있는 것이다.


그렇게 저장하는 점을 모아 하나의 큰 이미지를 저장할 수 있게 되는데, 1024 * 768 사이즈에 각 점에 대해 24비트로 저장하면 그 이미지를 저장하기 위한 저장 용량을 계산할 수 있다.

 

정답 :

 


1087 : [기초-종합] 여기까지! 이제 그만~

 

문제 : 1, 2, 3 ... 을 순서대로 계속 더해나갈 때, 그 합이 입력한 정수보다 작을 동안만 계속 더하는 프로그램을 작성해보자.

순서대로 계속 더해가다가, 그 합이 입력된 정수보다 커지거나 같아지는 경우, 그때까지의 합을 출력한다.

 

정답 :

while 문을 이용해 합이 입력된 정수보다 커지거나 같아지는 경우, 그때까지의 합을 출력하면 된다.

 


1088 : [기초-종합] 3의 배수는 통과?

 

문제 : 정수 1개를 입력받는다.

1부터 입력한 정수보다 작거나 같을 때까지 1씩 증가시켜 출력하되 3의 배수는 출력하지 않는다.

 

정답 :

 


1089 : [기초-종합] 수 나열하기1

 

문제 : 시작 값(a), 등차(d), 몇 번째인지를 나타내는 정수(n)가 입력될 때 n번째 수를 출력하는 프로그램을 만들어보자.

 

정답 :

등차수열 공식을 이용하면 된다.

 


1090 : [기초-종합] 수 나열하기2

 

문제 : 시작 값(a), 등비(r), 몇 번째인지를 나타내는 정수(n)가 입력될 때 n번째 수를 출력하는 프로그램을 만들어보자.

 

정답 :

등비수열 공식을 이용하면 된다.

 


1091 : [기초-종합] 수 나열하기3

 

문제 : 이전에 만든 수에 수를 곱한 다음 또 수를 더해 다음 수를 만드는 수열을 만들어보자.

시작 값(a), 곱할 값(m), 더할 값(d), 몇 번째인지를 나타내는 정수(n)가 입력될 때, n번째 수를 출력하시오.

 

정답 :

입력받은 시작 값(a)에 수를 곱하고 더한 뒤, 이를 다시 a에 대입하는 식으로 a의 값을 계속 업데이트 시켜나가면 된다.

 


1092 : [기초-종합] 함께 문제 푸는 날

문제 : 같은 날 동시에 가입한 인원 3명이 규칙적으로 방문하는, 방문 주기가 공백을 두고 입력된다.

3명이 다시 모두 함께 방문해 문제를 풀어보는 날(동시 가입/등업 후 며칠 후?)을 출력한다.

 

정답 :

최소 공배수를 이용해 풀어도 되지만, 위의 코드와 같이 day가 3명이 푸는 날짜 중 하나라도 해당되지 않는다면 계속 day를 더해나가다가, day가 3명 모두가 푸는 날짜에 해당되면 while 문을 탈출해 day를 구할 수도 있다.

 


1093 : [기초-1차원배열] 이상한 출석 번호 부르기1

 

문제 : 출석 번호를 n번 무작위로 불렀을 때, 각 번호(1 ~ 23)가 불린 횟수를 각각 출력해보자.

 

참고) 첫 번째 줄에 출석 번호를 부른 횟수인 정수 n이 입력된다. (1 ~ 10000)
두 번째 줄에는 무작위로 부른 n개의 번호(1 ~ 23)가 공백을 두고 순서대로 입력된다.

 

정답 :

먼저 총 학생 수 만큼 0으로 채운 배열 number_list를 만들어야 한다.

그리고 무작위로 부른 n개의 번호를 리스트로 만들어 저장한 뒤, 그 리스트에 대하여 for문을 이용해 number_list에 해당하는 값에 1씩 더해준다.

마지막으로 for문을 이용해 number_list의 모든 값을 출력해준다.

 


1094 : [기초-1차원배열] 이상한 출석 번호 부르기2

 

문제 : 출석 번호를 n번 무작위로 불렀을 때, 부른 번호를 거꾸로 출력해 보자.

 

정답 :

reversed()를 이용하면 반복 가능한 객체를 뒤집을 수 있다.

 


1095 : [기초-1차원배열] 이상한 출석 번호 부르기3

 

문제 : 출석 번호를 n번 무작위로 불렀을 때, 가장 빠른 번호를 출력해 보자.

 

정답 :

먼저, 무작위로 부른 출석 번호를 리스트 형태로 저장해둔다.

그리고 min_number을 출석 번호 중 가장 큰 값인 23으로 할당한 후, min_number와 입력 받은 출석 번호들을 for 문을 이용해 비교한다. 비교해서 min_number보다 값이 작은 출석 번호를 다시 min_number에 할당해 이를 반복한다.

 

복사했습니다!