[기초-종합] 3의 배수는 통과?(설명)

 

1부터 입력한 정수까지 1씩 증가시켜 출력하는 프로그램을 작성하되,
3의 배수인 경우는 출력하지 않도록 만들어보자.

예를 들면,
1 2 4 5 7 8 10 11 13 14 ...
와 같이 출력하는 것이다.


참고
반복문 안에서 continue;가 실행되면 그 아래의 내용을 건너뛰고, 다음 반복을 수행한다.
즉, 다음 반복으로 넘어가는 것이다.

 

입력

정수 1개를 입력받는다.
(1 ~ 100)

출력

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


입력 예시

10

 

출력 예시

1 2 4 5 7 8 10

 

풀이

 

number = int(input())

for i in range(1, (number + 1)):
    
    if (i % 3 == 0):
        continue
        
    print(i, end = " ")

 

설명

 

for문을 사용하였다.

if문으로 3의 배수를 걸러주고 나머지는 공백을 넣어서 출력.

'Algorithms > Code Up 100제' 카테고리의 다른 글

Code Up 기초 100제 - 1090  (0) 2020.01.13
Code Up 기초 100제 - 1089  (0) 2020.01.13
Code Up 기초 100제 - 1087  (0) 2020.01.13
Code Up 기초 100제 - 1086  (0) 2020.01.13
Code Up 기초 100제 - 1085  (0) 2020.01.13

[기초-종합] 여기까지! 이제 그만~(설명)

 

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

즉, 1부터 n까지 정수를 계속 더한다고 할 때,
어디까지 더해야 입력한 수보다 같거나 커지는지 알아보고자 하는 문제이다.

하지만, 이번에는 그 때의 합을 출력해야 한다.

예를 들어 57을 입력하면
1+2+3+...+8+9+10=55에 다시 11을 더해 66이 될 때,
그 값 66이 출력되어야 한다.

입력

언제까지 합을 계산할 지, 정수 1개를 입력받는다.
단, 입력되는 자연수는 100,000,000이하이다.

출력

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


입력 예시

57

 

출력 예시

66

 

풀이

 

number = int(input())
sum = 0

for i in range(1, (number + 1)):
    
    sum += i
    
    if (sum >= number):
        print(sum)
        break

 

설명

 

전에 있던 문제와 비슷하다

-> 전에 문제와는 다르게 for문 범위에 number+1을 해줬다.

-> 입력 값이 1일 경우에는 범위를 number로 지정해줬을 경우 아무것도 출력되지 않기 때문이다.

 

'Algorithms > Code Up 100제' 카테고리의 다른 글

Code Up 기초 100제 - 1089  (0) 2020.01.13
Code Up 기초 100제 - 1088  (0) 2020.01.13
Code Up 기초 100제 - 1086  (0) 2020.01.13
Code Up 기초 100제 - 1085  (0) 2020.01.13
Code Up 기초 100제 - 1084  (0) 2020.01.13

[기초-종합] 그림 파일 저장용량 계산하기(설명)

 

이미지가 컴퓨터에 저장될 때에도 디지털 데이터화 되어 저장된다.

가장 기본적인 방법으로는 그림을 구성하는 한 점(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비트로 저장하면 그 이미지를 저장하기 위한
저장 용량을 계산할 수 있다.

이렇게 이미지의 원래(raw) 데이터를 압축하지 않고 그대로 저장하는 대표적인 이미지 파일이
*.bmp 파일이며, 비트로 그림을 구성한다고 하여 비트맵 방식 또는 래스터 방식이라고 한다.

이미지의 가로 해상도 w, 세로 해상도 h, 한 픽셀을 저장하기 위한 비트 b 가 주어질 때,
압축하지 않고 저장하기 위해 필요한 저장 용량을 계산하는 프로그램을 작성해 보자.


예를 들어
일반적인 1024 * 768 사이즈(해상도)의 각점에 대해
24비트(rgb 각각 8비트씩 3개)로 저장하려면 1024 * 768 * 24 bit의 저장 용량이 필요하다.

실제 그런지 확인하고 싶다면, 간단한 그림 편집/수정 프로그램을 통해 확인할 수 있다.


**
8 bit(비트) = 1byte(바이트) // 8bit=1Byte
1024 Byte(210 byte) = 1KB(킬로 바이트) // 1024bit=1KB
1024 KB(210 KB) = 1MB(메가 바이트)
1024 MB(210 MB) = 1GB(기가 바이트)
1024 GB(210 GB) = 1TB(테라 바이트)

 

입력

w, h, b 가 공백을 두고 입력된다.
단, w, h는 모두 정수이고 1~1024 이다. b는 40이하의 4의 배수이다.

출력

필요한 저장 공간을 MB 단위로 바꾸어 출력한다.
소수점 이하 셋째 자리에서 반올림해 둘째 자리까지 출력한 뒤 MB를 출력한다.


입력 예시

1024 768 24

 

출력 예시

2.25 MB

 

 

풀이

w, h, b = map(int, input().split())

whb = round((w * h * b) / 2**23, 2)

print("%.2f" % whb, "MB")

 

설명

1085번 문제와 다르게

print문을 다르게 표현했다.

이유는 정답 중에 0.00MB인게 있었는데 0.0 MB까지만 나와서 소수점 둘째자리까지 반드시 표기하기 위해서 바꾸었다.

'Algorithms > Code Up 100제' 카테고리의 다른 글

Code Up 기초 100제 - 1088  (0) 2020.01.13
Code Up 기초 100제 - 1087  (0) 2020.01.13
Code Up 기초 100제 - 1085  (0) 2020.01.13
Code Up 기초 100제 - 1084  (0) 2020.01.13
Code Up 기초 100제 - 1083  (0) 2020.01.13