728x90
728x90
여러분, 안녕하세요!!
오늘은 이전에 남겼던 코드업 기초 100제에 이어서 나머지 문제들을 다뤄보려고 합니다.
따라서 이번 페이지는 6051~6098번(51~98번)까지의 문제 및 풀이입니다.
#51.
a,b = map(int,input().split())
print(a!=b)
0 1
True
#52. 정수값이 입력될 때, 그 불 값을 출력하는 프로그램
n = int(input())
print(bool(n))
0
False
#53. 정수값이 입력될 때, 그불 값을 반대로 출력하는 프로그램
a=bool(int(input()))
print(not(a))
1
False
#54. 2개의 정수값이 입력될 때, 그 불 값이 모두 True일 때에만 True를 출력하는 프로그램
a,b = input().split()
print(bool(int(a)) and bool(int(b)))
1 1
True
#55. 2개의 정수값이 입력될 때, 그 불 값이 하나라도 True일 때에만 True를 출력하는 프로그램
a,b = map(int, input().split())
print(bool(a)or bool(b))
1 1
True
#56. 2개의 정수값이 입력될 때, 그 불 값이 서로 다를 때에만 True를 출력하는 프로그램
a,b = map(int,input().split())
a=bool(a)
b=bool(b)
print(a and not(b) or b and not(a))
1 1
False
#57.2개의 정수값이 입력될 때,그 불 값(True/False) 이 서로 같을 때에만 True 를 출력하는 프로그램을 작성해보자.
a,b = map(int,input().split())
a=bool(a)
b=bool(b)
if a == b:
print(True)
else:
print(False)
0 0
True
#58.2개의 정수값이 입력될 때,그 불 값(True/False) 이 모두 False 일 때에만 True 를 출력하는 프로그램을 작성해보자.
a,b = map(int,input().split())
a=bool(a)
b=bool(b)
if (a and b) == False:
print(True)
else:
print(False)
0 0
True
#59.입력 된 정수를 비트단위로 참/거짓을 바꾼 후 정수로 출력해보자
a=int(input()) # ~n = -n-1
print(~a)
2
-3
#60.입력된 정수 두 개를 비트단위로 and 연산한 후 그 결과를 정수로 출력해보자.
a,b = map(int,input().split())
print(a & b)
3 5
1
#61.입력된 정수 두 개를 비트단위로 or 연산한 후 그 결과를 정수로 출력해보자.
a,b = map(int,input().split())
print(a|b)
3 5
7
#62.입력된 정수 두 개를 비트단위로 xor 연산한 후 그 결과를 정수로 출력해보자.
a,b = map(int,input().split())
print(a^b)
3 5
6
#63. 입력된 두 정수(a, b) 중 큰 값을 출력하는 프로그램을 작성해보자.
a,b = map(int,input().split())
if a>b:
print(a)
else:
print(b)
123 456
456
#64.입력된 세 정수 a, b, c 중 가장 작은 값을 출력하는 프로그램을 작성해보자.
a,b,c = map(int,input().split())
if a<b and a<c :
print(a)
elif b<a and b<c:
print(b)
elif c<a and c<b:
print(c)
print((a if a < b else b) if (a if a < b else b) < c else c)
3 -1 5
-1
-1
#65. 3개의 정수(a, b, c)가 입력되었을 때, 짝수만 출력해보자.
a,b,c = map(int, input().split())
if (a%2)==0:
print(a)
if (b%2)==0:
print(b)
if (c%2)==0:
print(c)
1 2 4
2
4
#66.3개의 정수(a, b, c)가 입력되었을 때, 짝(even)/홀(odd)을 출력해보자.
a,b,c = map(int,input().split())
if a%2==0:
print("even")
else: print("odd")
if b%2==0:
print("even")
else: print("odd")
if c%2==0:
print("even")
else: print("odd")
1 2 8
odd
even
even
#67.0이 아닌 정수 1개가 입력되었을 때, 음(-)/양(+)과 짝(even)/홀(odd)을 구분해 분류해보자.
a = int(input())
if a<0:
if a%2==0:
print("A")
else: print("B")
elif a>0:
if a%2==0:
print("C")
else: print("D")
-2147483648
A
#68.점수(정수, 0 ~ 100)를 입력받아 평가를 출력해보자.
a = int(input())
if a>=90 and a<=100:
print('A')
elif a>=70 and a<=89:
print('B')
elif a>=40 and a<=69:
print('C')
elif a>=0 and a<=39:
print('D')
73
B
#69.평가를 문자(A, B, C, D, ...)로 입력받아 내용을 다르게 출력해보자.
a=input()
print("평가:내용")
if a=='A':
print('best!!!')
if a=='B':
print('good!!')
if a=='C':
print('run!')
if a=='D':
print('slowly~')
A
평가:내용
best!!!
#70. 월이 입력될 때 계절 이름이 출력되도록 해보자.
a = int(input())
if a==12 or a==1 or a==2:
print('winter')
elif a==3 or a==4 or a==5:
print('spring')
elif a==6 or a==7 or a==8:
print('summer')
elif a==9 or a==10 or a==11:
print('fall')
12
winter
#71. 0이 아니면 입력된 정수를 출력하고, 0이 입력되면 출력을 중단해보자.
n=1
while n!=0:
n=int(input())
if n!=0:
print(n)
15
15
1
1
2
2
3
3
4
4
5
5
6
6
44
44
5
5
8
8
0
#72. 정수(1 ~ 100) 1개가 입력되었을 때 카운트다운을 출력해보자.
n=int(input())
while n!=0:
print(n)
n=n-1
5
5
4
3
2
1
#73.정수(1 ~ 100) 1개가 입력되었을 때 카운트다운을 출력해보자.
n=int(input())
while n>0:
n=n-1
print(n)
5
4
3
2
1
0
#74.영문 소문자(a ~ z) 1개가 입력되었을 때,a부터 그 문자까지의 알파벳을 순서대로 출력해보자(다시보기)
c=ord(input())
k=ord('a')
while k<=c:
print(chr(k),end='')
k+=1
z
abcdefghijklmnopqrstuvwxyz
#75.정수(0 ~ 100) 1개를 입력받아 0부터 그 수까지 순서대로 출력해보자.
a=int(input())
n=0
while a>=n:
print(n)
n+=1
4
0
1
2
3
4
#76.정수(0 ~ 100) 1개를 입력받아 0부터 그 수까지 순서대로 출력해보자.
n = int(input())
for i in range(0,n+1):
print(i)
4
0
1
2
3
4
#77.정수(1 ~ 100) 1개를 입력받아 1부터 그 수까지 짝수의 합을 구해보자.
for i in range(5):
print(i)
0
1
2
3
4
#78.영문 소문자 'q'가 입력될 때까지입력한 문자를 계속 출력하는 프로그램을 작성해보자.
while n!='q':
n=input()
print(n)
a
a
b
b
c
c
d
d
q
q
#79.1, 2, 3 ... 을 계속 더해 나갈 때,그 합이 입력한 정수(0 ~ 1000)보다 같거나 작을 때까지만계속 더하는 프로그램을 작성해보자.
n=int(input())
a=0
b=0
while b<n:
a+=1
b+=a
print(a)
55
10
#80.1부터 n까지, 1부터 m까지 숫자가 적힌 서로 다른 주사위 2개를 던졌을 때, 나올 수 있는 모든 경우를 출력해보자.
n,m = map(int,input().split())
for i in range(1,n+1):
for z in range(1,m+1):
print(i,z)
2 3
1 1
1 2
1 3
2 1
2 2
2 3
#81.
#16진수(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F)를 배운
#영일이는 16진수끼리 곱하는 16진수 구구단?에 대해서 궁금해졌다.
#A, B, C, D, E, F 중 하나가 입력될 때,
#1부터 F까지 곱한 16진수 구구단의 내용을 출력해보자.
#(단, A ~ F 까지만 입력된다.)
ord("A")
65
#82.
#친구들과 함께 3 6 9 게임을 하던 영일이는 잦은 실수 때문에 계속해서 벌칙을 받게 되었다.
#3 6 9 게임의 왕이 되기 위한 369 마스터 프로그램을 작성해 보자.
n = int(input())
for i in range(1,n+1):
if i%10 ==3:
print("박수X", end=' ')
elif i%10==6:
print("박수X", end=' ')
elif i%10==9:
print("박수X", end=' ')
else:
print(i,end=' ')
29
1 2 박수X 4 5 박수X 7 8 박수X 10 11 12 박수X 14 15 박수X 17 18 박수X 20 21 22 박수X 24 25 박수X 27 28 박수X
#83.
#빨강(red), 초록(green), 파랑(blue) 빛을 섞어 여러 가지 다른 색 빛을 만들어 내려고 한다.
#빨강(r), 초록(g), 파랑(b) 각 빛의 가짓수가 주어질 때,
#주어진 rgb 빛들을 섞어 만들 수 있는 모든 경우의 조합(r g b)과 만들 수 있는 색의 가짓 수를 계산해보자.
r,g,b = map(int,input().split())
count=0
for i in range(0,r):
for j in range(0,g):
for k in range(0,b):
print(i,j,k)
count += 1
print(count)
2 2 2
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
8
#84.
# 소리가 컴퓨터에 저장될 때에는 디지털 데이터화 되어 저장된다.
# 마이크를 통해 1초에 적게는 수십 번, 많게는 수만 번 소리의 강약을 체크하고,
# 한 번씩 체크할 때 마다 그 값을 정수값으로 바꾸어 저장하는 방식으로 소리를 파일로 저장할 수 있다.
# 값을 저장할 때에는 비트를 사용하는 정도에 따라 세세한 녹음 정도를 결정할 수 있고,
# 좌우(스테레오) 채널로 저장하면 2배… 5.1채널이면 6배의 저장공간이 필요하고,
# 녹음 시간이 길면 그 만큼 더 많은 저장공간이 필요하다.
# 1초 동안 마이크로 소리강약을 체크하는 횟수를 h
# (헤르쯔, Hz 는 1초에 몇 번? 체크하는가를 의미한다.)
# 한 번 체크한 값을 저장할 때 사용하는 비트수를 b
# (2비트를 사용하면 0 또는 1 두 가지, 16비트를 사용하면 65536가지..)
# 좌우 등 소리를 저장할 트랙 개수인 채널 개수를 c
# (모노는 1개, 스테레오는 2개의 트랙으로 저장함을 의미한다.)
# 녹음할 시간(초) s가 주어질 때,
# 필요한 저장 용량을 계산하는 프로그램을 작성해보자.
# 실제로, 일반적인 CD 음질(44.1KHz, 16bit, 스테레오)로 1초 동안 저장하려면
# 44100 * 16 * 2 * 1 bit의 저장공간이 필요한데,
# 44100*16*2*1/8/1024/1024 로 계산하면 약 0.168 MB 정도가 필요하다.
# 이렇게 녹음하는 방식을 PCM(Pulse Code Modulation) 방법이라고 하는데,
# 압축하지 않은 순수한(raw) 소리 데이터 파일은 대표적으로 *.wav 가 있다.
# **
# 8 bit(비트) = 1byte(바이트) # 8bit=1Byte
# 1024 Byte(210 byte) = 1KB(킬로 바이트) # 1024Byte=1KB
# 1024 KB(210 KB) = 1MB(메가 바이트)
# 1024 MB(210 MB) = 1GB(기가 바이트)
# 1024 GB(210 GB) = 1TB(테라 바이트)
# h, b, c, s 가 공백을 두고 입력된다.
# h는 48,000이하, b는 32이하(단, 8의배수), c는 5이하, s는 6,000이하의 자연수이다.
h,b,c,s = map(int,input().split(' '))
mb=round(h*b*c*s/8/1024/1024,1)
print(f'{mb} MB')
44100 16 2 10
1.7 MB
#85.
# 이미지가 컴퓨터에 저장될 때에도 디지털 데이터화 되어 저장된다.
# 가장 기본적인 방법으로는 그림을 구성하는 한 점(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의 저장공간이 필요한데,
# 1024*768*24/8/1024/1024 로 계산하면 약 2.25 MB 정도가 필요하다.
# 실제 그런지 확인하고 싶다면, 간단한 그림 편집/수정 프로그램을 통해 확인할 수 있다.
# **
# 8 bit(비트) = 1byte(바이트) # 8bit=1Byte
# 1024 Byte(210 byte) = 1KB(킬로 바이트) # 1024Byte=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의 배수이다.
r,g,b = map(int,input().split())
mb = round(r*g*b/8/1024/1024,2)
print(f'{mb} MB')
1024 768 24
2.25 MB
#86.
# 1, 2, 3 ... 을 순서대로 계속 더해 합을 만드는데,
# 그 합이 입력한 정수보다 작을 동안만 계속 더하는 프로그램을 작성해보자.
# 즉, 1부터 n까지 정수를 하나씩 더해 합을 만드는데,
# 어디까지 더해야 입력한 수보다 같거나 커지는지 알아보고자 하는 문제이다.
# 하지만, 이번에는 그 때 까지의 합을 출력해야 한다.
# 예를 들어, 57을 입력하면
# 1+2+3+...+8+9+10=55에서 그 다음 수인 11을 더해 66이 될 때,
# 그 값 66이 출력되어야 한다.
n = int(input())
i=0
j=0
while j<=n:
i+=1
j+=i
print(j)
57
66
#87.
# 1부터 입력한 정수까지 1씩 증가시켜 출력하는 프로그램을 작성하되,
# 3의 배수인 경우는 출력하지 않도록 만들어보자.
# 예를 들면,
# 1 2 4 5 7 8 10 11 13 14 ...
# 와 같이 출력하는 것이다.
n=int(input())
for i in range(1,n+1):
if (i%3) ==0:
pass
else:
print(i)
10
1
2
4
5
7
8
10
#88.
# 1 4 7 10 13 16 19 22 25 ... 은
# 1부터 시작해 이전에 만든 수에 3을 더해 다음 수를 만든 수열이다.
# 이러한 것을 수학에서는 앞뒤 수들의 차이가 같다고 하여
# 등차(차이가 같다의 한문 말) 수열이라고 한다. (등차수열 : arithmetic progression/sequence)
# 수열을 알게 된 영일이는 갑자기 궁금해졌다.
# "그럼.... 123번째 나오는 수는 뭘까?"
# 영일이는 프로그램을 만들어 더 큰 수도 자동으로 계산하고 싶어졌다.
# 시작 값(a), 등차(d), 몇 번째인지를 나타내는 정수(n)가 입력될 때
# n번째 수를 출력하는 프로그램을 만들어보자.
a,d,n = map(int,input().split())
num = a+(d*(n-1))
print(num)
1 3 5
13
#89.
# 예를 들어
# 2 6 18 54 162 486 ... 은
# 2부터 시작해 이전에 만든 수에 3을 곱해 다음 수를 만든 수열이다.
# 이러한 것을 수학에서는 앞뒤 수들의 비율이 같다고 하여
# 등비(비율이 같다의 한문 말) 수열이라고 한다. (등비수열 : geometric progression/sequence)
# 등비 수열을 알게된 영일이는 갑자기 궁금해졌다.
# "그럼.... 13번째 나오는 수는 뭘까?"
# 영일이는 프로그램을 만들어 더 큰 수도 자동으로 계산하고 싶어졌다.
# 시작 값(a), 등비(r), 몇 번째인지를 나타내는 정수(n)가 입력될 때
# n번째 수를 출력하는 프로그램을 만들어보자.
a,r,n = map(int,input().split())
total = a
for i in range(a, a+(n-1)):
total*=r
print(total)
2 3 7
1458
#90.
# 예를 들어
# 1 -1 3 -5 11 -21 43 ... 은
# 1부터 시작해 이전에 만든 수에 -2를 곱한 다음 1을 더해 다음 수를 만든 수열이다.
# 이런 이상한 수열을 알게 된 영일이는 또 궁금해졌다.
# "그럼.... 13번째 나오는 수는 뭘까?"
# 영일이는 물론 수학을 아주 잘하지만 이런 문제는 본 적이 거의 없었다...
# 그래서 프로그램을 만들어 더 큰 수도 자동으로 계산하고 싶어졌다.
# 시작 값(a), 곱할 값(m), 더할 값(d), 몇 번째인지를 나타내는 정수(n)가 입력될 때,
# n번째 수를 출력하는 프로그램을 만들어보자.
a,m,d,n = map(int,input().split())
total = a
for i in range(a, a+(n-1)):
total *= m
total += d
print(total)
1 -2 1 8
-85
#91.
# 온라인 채점시스템에는 초등학생, 중고등학생, 대학생, 대학원생,
# 일반인, 군인, 프로그래머, 탑코더 등 아주 많은 사람들이 들어와 문제를 풀고 있는데,
# 실시간 채점 정보는 메뉴의 채점기록(Judge Status)을 통해 살펴볼 수 있다.
# 자! 여기서...잠깐..
# 같은 날 동시에 가입한 3명의 사람들이 온라인 채점시스템에 들어와 문제를 푸는 날짜가
# 매우 규칙적이라고 할 때, 다시 모두 함께 문제를 풀게 되는 그날은 언제일까?
# 예를 들어 3명이 같은 날 가입/등업하고, 각각 3일마다, 7일마다, 9일마다
# 한 번씩 들어온다면, 처음 가입하고 63일 만에 다시 3명이 함께 문제를 풀게 된다.
# 갑자기 힌트?
# 왠지 어려워 보이지 않는가?
# 수학에서 배운 최소공배수를 생각한 사람들도 있을 것이다. 하지만, 정보에서 배우고 경험하는
# 정보과학의 세상은 때때로 컴퓨터의 힘을 빌려 간단한 방법으로 해결할 수 있게 한다.
# 아래의 코드를 읽고 이해한 후 도전해 보자.
# day는 날 수, a/b/c는 방문 주기이다.
a,b,c = map(int,input().split())
d = 1
while d%a!=0 or d%b!=0 or d%c!=0 :
d += 1
print(d)
3 7 9
63
#92.
# 정보 선생님은 수업을 시작하기 전에 이상한 출석을 부른다.
# 선생님은 출석부를 보고 번호를 부르는데,
# 학생들의 얼굴과 이름을 빨리 익히기 위해 번호를 무작위(랜덤)으로 부른다.
# 그리고 얼굴과 이름이 잘 기억되지 않는 학생들은 번호를 여러 번 불러
# 이름과 얼굴을 빨리 익히려고 하는 것이다.
# 출석 번호를 n번 무작위로 불렀을 때, 각 번호(1 ~ 23)가 불린 횟수를 각각 출력해보자.
from random import randint
n = int(input())
temp = [0] * 23
nums = input().split()
for i in nums:
temp[int(i)-1] += 1
for i in temp:
print(i, end=' ')
10
1 3 2 2 5 6 7 4 5 9
1 2 1 1 2 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#93.
# 정보 선생님은 수업을 시작하기 전에 이상한 출석을 부른다.
# 학생들의 얼굴과 이름을 빨리 익히기 위해 번호를 무작위(랜덤)으로 부르는데,
# 영일이는 선생님이 부른 번호들을 기억하고 있다가 거꾸로 불러보는 것을 해보고 싶어졌다.
# 출석 번호를 n번 무작위로 불렀을 때, 부른 번호를 거꾸로 출력해 보자.
n = int(input())
nums = input().split()
nums.reverse()
for i in nums:
print(int(i), end=' ')
10
10 4 2 3 6 6 7 9 8 5
5 8 9 7 6 6 3 2 4 10
#94.
# 정보 선생님은 오늘도 이상한 출석을 부른다.
# 영일이는 오늘도 다른 생각을 해보았다.
# 출석 번호를 다 부르지는 않은 것 같은데... 가장 빠른 번호가 뭐였지?
# 출석 번호를 n번 무작위로 불렀을 때, 가장 빠른 번호를 출력해 보자.
n = int(input())
nums = map(int, input().split())
print(min(nums))
10
10 4 2 3 6 6 7 9 8 5
2
#95.
# 기숙사 생활을 하는 학교에서 어떤 금요일(전원 귀가일)에는 모두 집으로 귀가를 한다.
# 오랜만에 집에 간 영일이는 아버지와 함께 두던 매우 큰 오목에 대해서 생각해 보다가
# "바둑판에 돌을 올린 것을 프로그래밍 할 수 있을까?"하고 생각하였다.
# 바둑판(19 * 19)에 n개의 흰 돌을 놓는다고 할 때,
# n개의 흰 돌이 놓인 위치를 출력하는 프로그램을 작성해보자.
li = [[0 for i in range(19)] for j in range(19)]
n = int(input())
for i in range(n):
x, y = map(int, input().split())
if(li[x-1][y-1] != 1):
li[x-1][y-1] = 1
for i in li:
print(' '.join(map(str, i)))
5
1 1
2 2
3 3
4 4
5 5
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#96.
# 부모님을 기다리던 영일이는 검정/흰 색 바둑알을 바둑판에 꽉 채워 깔아 놓고 놀다가...
# "십(+)자 뒤집기를 해볼까?"하고 생각했다.
# 십자 뒤집기는
# 그 위치에 있는 모든 가로줄 돌의 색을 반대(1->0, 0->1)로 바꾼 후,
# 다시 그 위치에 있는 모든 세로줄 돌의 색을 반대로 바꾸는 것이다.
# 어떤 위치를 골라 집자 뒤집기를 하면, 그 위치를 제외한 가로줄과 세로줄의 색이 모두 반대로 바뀐다.
# 바둑판(19 * 19)에 흰 돌(1) 또는 검정 돌(0)이 모두 꽉 채워져 놓여있을 때,
# n개의 좌표를 입력받아 십(+)자 뒤집기한 결과를 출력하는 프로그램을 작성해보자.
li = []
for i in range(19):
li.append([])
k = input().split()
for e in k:
li[i].append(int(e))
n = int(input())
x = []
y = []
for i in range(n):
a, b = map(int, input().split())
for j in range(19):
li[a-1][j] = 1 if li[a-1][j] != 1 else 0
li[j][b-1] = 1 if li[j][b-1] != 1 else 0
for i in li:
print(' '.join(map(str, i)))
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
2
10 10
12 12
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#97.
# 부모님과 함께 놀러간 영일이는
# 설탕과자(설탕을 녹여 물고기 등의 모양을 만든 것) 뽑기를 보게 되었다.
# 길이가 다른 몇 개의 막대를 바둑판과 같은 격자판에 놓는데,
# 막대에 있는 설탕과자 이름 아래에 있는 번호를 뽑으면 설탕과자를 가져가는 게임이었다.
# (잉어, 붕어, 용 등 여러 가지가 적혀있다.)
# 격자판의 세로(h), 가로(w), 막대의 개수(n), 각 막대의 길이(l),
# 막대를 놓는 방향(d:가로는 0, 세로는 1)과
# 막대를 놓는 막대의 가장 왼쪽 또는 위쪽의 위치(x, y)가 주어질 때,
# 격자판을 채운 막대의 모양을 출력하는 프로그램을 만들어보자.
li = []
h, w = map(int, input().split())
for i in range(h):
li.append([])
for j in range(w):
li[i].append(0)
n = int(input())
for i in range(n):
l, d, x, y = map(int, input().split())
for j in range(l):
if d == 0:
li[x-1][y-1] = 1
y += 1
else:
li[x-1][y-1] = 1
x += 1
for i in li:
print(' '.join(map(str, i)))
5 5
3
2 0 1 1
3 1 2 3
4 1 2 5
1 1 0 0 0
0 0 1 0 1
0 0 1 0 1
0 0 1 0 1
0 0 0 0 1
#98.
# 영일이는 생명과학에 관심이 생겨 왕개미를 연구하고 있었다.
# 왕개미를 유심히 살펴보던 중 특별히 성실해 보이는 개미가 있었는데,
# 그 개미는 개미굴에서 나와 먹이까지 가장 빠른 길로 이동하는 것이었다.
# 개미는 오른쪽으로 움직이다가 벽을 만나면 아래쪽으로 움직여 가장 빠른 길로 움직였다.
# (오른쪽에 길이 나타나면 다시 오른쪽으로 움직인다.)
# 이에 호기심이 생긴 영일이는 그 개미를 미로 상자에 넣고 살펴보기 시작하였다.
# 미로 상자에 넣은 개미는 먹이를 찾았거나, 더 이상 움직일 수 없을 때까지
# 오른쪽 또는 아래쪽으로만 움직였다.
# 미로 상자의 구조가 0(갈 수 있는 곳), 1(벽 또는 장애물)로 주어지고,
# 먹이가 2로 주어질 때, 성실한 개미의 이동 경로를 예상해보자.
# 단, 맨 아래의 가장 오른쪽에 도착한 경우, 더 이상 움직일 수 없는 경우, 먹이를 찾은 경우에는
# 더이상 이동하지 않고 그 곳에 머무른다고 가정한다.
# 미로 상자의 테두리는 모두 벽으로 되어 있으며,
# 개미집은 반드시 (2, 2)에 존재하기 때문에 개미는 (2, 2)에서 출발한다.
li = []
for i in range(10):
li.append([])
k = input().split()
for e in k:
li[i].append(int(e))
x, y = 1, 1
flag = True
while flag:
if li[x][y] == 2:
li[x][y] = 9
flag = False
elif (li[x][y+1]) == 1:
if li[x+1][y] == 1:
li[x][y] = 9
flag = False
else:
li[x][y] = 9
x += 1
else:
li[x][y] = 9
y += 1
for i in li:
print(' '.join(map(str, i)))
1 1 1 1 1 1 1 1 1 1
1 0 0 1 0 0 0 0 0 1
1 0 0 1 1 1 0 0 0 1
1 0 0 0 0 0 0 1 0 1
1 0 0 0 0 0 0 1 0 1
1 0 0 0 0 1 0 1 0 1
1 0 0 0 0 1 2 1 0 1
1 0 0 0 0 1 0 0 0 1
1 0 0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1
1 9 9 1 0 0 0 0 0 1
1 0 9 1 1 1 0 0 0 1
1 0 9 9 9 9 9 1 0 1
1 0 0 0 0 0 9 1 0 1
1 0 0 0 0 1 9 1 0 1
1 0 0 0 0 1 9 1 0 1
1 0 0 0 0 1 0 0 0 1
1 0 0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 1 1 1
문제와 풀이를 같이 정리해보았는데, 저는 90번이 넘어가면서 생각해야 할 부분도 많아지고 어렵다고 느껴졌습니다. 이게 기초라니..라는 생각도 드네요ㅎㅎㅎ코딩 테스트를 몇 번 보았지만, 진짜 지문 읽기가 싫을 정도로 글이 많던데 걱정이네요.
그래도 시작이 반이다 라는 생각으로 노력해보려고 합니다. 이글을 읽는 여러분들도 포기하지 마시고, 같이 파이팅합시다!!
728x90
728x90
'Data Science' 카테고리의 다른 글
메타분석 (0) | 2022.08.19 |
---|---|
코드업 기초100제 Python (0) | 2022.07.08 |
[R] 비용 효율성 분석(Cost-effectiveness analysis)이란? (0) | 2022.06.20 |
칼만 필터(Kalman Filter)란? (0) | 2022.06.17 |
파이썬을 이용한 정렬 알고리즘(버블, 선택, 삽입, 퀵) (0) | 2022.06.10 |
댓글