본문 바로가기

전체 글

(1854)
1086 : [기초-종합] 그림 파일 저장용량 계산하기 Q> 이미지가 컴퓨터에 저장될 때에도 디지털 데이터화 되어 저장된다. 가장 기본적인 방법으로는 그림을 구성하는 한 점(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비트로 저장하면 그 이미지를 저장하기 위한 저장 용량을 계산할 수 있다. 이렇게 이미지의 원래(r..
1085 : [기초-종합] 소리 파일 저장용량 계산하기 Q> 소리가 컴퓨터에 저장될 때에는 디지털 데이터화 되어 저장된다. 마이크를 통해 1초에 적게는 수십 번, 많게는 수만 번 소리의 강약을 체크해 그 값을 정수값으로 바꾸고, 그 값을 저장해 소리를 파일로 저장할 수 있다. 값을 저장할 때에는 비트를 사용하는 정도에 따라 세세한 녹음 정도를 결정할 수 있고, 좌우(스테레오) 채널로 저장하면 2배… 5.1채널이면 6배의 저장공간이 필요하고, 녹음 시간이 길면 그 만큼 더 많은 저장공간이 필요하다. 1초 동안 마이크로 소리강약을 체크하는 수를 h (헤르쯔, Hz 는 1초에 몇 번? 체크하는가를 의미한다.) 한 번 체크한 결과를 저장하는 비트 b (2비트를 사용하면 0 또는 1 두 가지, 16비트를 사용하면 65536가지..) 좌우 등 소리를 저장할 트랙 개수인..
1084 : [기초-종합] 빛 섞어 색 만들기 Q> 빨강(red), 초록(green), 파랑(blue) 빛을 섞어 여러 가지 빛의 색을 만들어 내려고 한다. 빨강(r), 초록(g), 파랑(b) 각각의 빛의 개수가 주어질 때, (빛의 강약에 따라 0 ~ n-1 까지 n가지의 빛 색깔을 만들 수 있다.) 주어진 rgb 빛들을 다르게 섞어 만들 수 있는 모든 경우의 조합(r g b)과 총 가짓 수를 계산해보자. 예시 int i, j, k, c=0; int r, g, b; scanf("%d%d%d”, &r, &g, &b); for(i=0; i 다중 for 문 #> admin, 2019년 10월 06일, http://codeup.kr
1083 : [기초-종합] 3 6 9 게임의 왕이 되자! Q> 3 6 9 게임을 하던 영일이는 3 6 9 게임에서 잦은 실수로 계속해서 벌칙을 받게 되었다. 3 6 9 게임의 왕이 되기 위한 마스터 프로그램을 작성해 보자. 참고 중첩의 원리 반복 실행 구조 안에 선택 실행 구조를 자유롭게 중첩할 수 있다. 예시 int i; for(i=1; i n1 = int(input()) for i in range(1, n1 + 1): if i == 3 or i == 6 or i == 9: print('X',end=' ') else: print(i, end=' ') A1> a=input() n=int(a) for i in range(1, n+1) : if i%3==0 : print('X', end=' ') else : print(i, end=' ') W> for문 #> ad..
1082 : [기초-종합] 16진수 구구단? Q> 16진수(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F)를 배운 영일(01)이는 16진수끼리 곱하는 16진수 구구단?에 대해서 궁금해졌다. A, B, C, D, E, F 중 하나가 입력될 때, 1부터 F까지 곱한 16진수 구구단의 내용을 출력해보자. (단, A ~ F 까지만 입력된다.) 입력 16진수로 한 자리 수가 입력된다. 단, A ~ F 까지만 입력된다. 출력 입력된 16진수에 1~F까지 순서대로 곱한, 16진수 구구단을 줄을 바꿔 출력한다. 계산 결과도 16진수로 출력해야 한다. A> s1 = input() s1_10 = int(s1, 16) for i in range(1, 16): print('{0}*{1}={2}'.format(hex(s1_10)[2:..
1081 : [기초-종합] 주사위를 2개 던지면? Q> 1부터 n까지, 1부터 m까지 숫자가 적힌 서로 다른 주사위 2개를 던졌을 때 나올 수 있는 모든 경우를 출력해보자. 참고 중첩의 원리... 반복 실행 구조도 조건 실행 구조와 마찬가지로 중첩의 원리가 적용된다. 반복 실행 구조를 중첩하면 원하는 반복 구조를 다양하게 만들어 낼 수 있다. 예시 int i, j; int n=3, m=6; for(i=1; i admin, 2019년 10월 05일, http://codeup.kr
1080 : [기초-종합] 언제까지 더해야 할까? Q> 1, 2, 3 ... 을 계속 더해 나갈 때, 그 합이 입력한 정수(0 ~ 1000)보다 같거나 작을 때까지 계속 더하는 프로그램을 작성해보자. 즉, 1부터 n까지 정수를 계속 더한다고 할 때, 어디까지 더해야 입력한 수보다 같거나 커지는지 알아보고자 하는 문제이다. 입력 정수 1개가 입력된다. 출력 1, 2, 3, 4, 5 ... 를 순서대로 계속 더해 합을 만들어가다가, 입력된 정수와 같거나 커졌을 때, 마지막에 더한 정수를 출력한다. A> n1 = int(input()) i = 1 sum = 0 while True: sum += i if sum >= n1: print(i) break i += 1 A1> a=input() n=int(a) i=0 s=0 while s while 문 #> admin..
1079 : [기초-종합] 원하는 문자가 입력될 때까지 반복 출력하기 Q> 'q'가 입력될 때까지 입력한 문자를 계속 출력하는 프로그램을 작성해보자. 입력 문자들이 1개씩 계속해서 입력된다. 출력 'q'가 입력될 때까지 입력된 문자를 줄을 바꿔 한 줄씩 출력한다. A> s1 = input().split() s1_list = list(s1) last = s1_list.index('q') for i in s1_list[:last + 1]: print(i) A1> a=input().split() for c in a : print(c) if c=='q' : break W> for문 #> admin, 2019년 10월 05일, http://codeup.kr