본문 바로가기
알고리즘/백준

입출력과 사칙연산(18108, 3003, 10430, 2588, 10171, 10172, 25083)

by 수쨔앙 2022. 9. 1.

18108

문제 ICPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다.
불교 국가인 태국은 불멸기원(佛滅紀元), 즉 석가모니가 열반한 해를 기준으로 연도를 세는 불기를 사용한다. 반면, 우리나라는 서기 연도를 사용하고 있다. 불기 연도가 주어질 때 이를 서기 연도로 바꿔 주는 프로그램을 작성하시오.
입력 서기 연도를 알아보고 싶은 불기 연도 y가 주어진다. (1000 ≤ y ≤ 3000)
출력
불기 연도를 서기 연도로 변환한 결과를 출력한다.
print(int(input())-543)

2541 - 1998 = 543

서기와 불기는 543년 차이가 난다

입력값에서 543를 빼준 뒤 출력하면 되는데 

input() 값은 문자이므로 int()로 감싸줘서 숫자로 바꿔주자!

 

 

3003

문제 동혁이는 오래된 창고를 뒤지다가 낡은 체스판과 피스를 발견했다.
체스판의 먼지를 털어내고 걸레로 닦으니 그럭저럭 쓸만한 체스판이 되었다. 하지만, 검정색 피스는 모두 있었으나, 흰색 피스는 개수가 올바르지 않았다.
체스는 총 16개의 피스를 사용하며, 킹 1개, 퀸 1개, 룩 2개, 비숍 2개, 나이트 2개, 폰 8개로 구성되어 있다.
동혁이가 발견한 흰색 피스의 개수가 주어졌을 때, 몇 개를 더하거나 빼야 올바른 세트가 되는지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 동혁이가 찾은 흰색 킹, 퀸, 룩, 비숍, 나이트, 폰의 개수가 주어진다. 이 값은 0보다 크거나 같고 10보다 작거나 같은 정수이다.
출력
첫째 줄에 입력에서 주어진 순서대로 몇 개의 피스를 더하거나 빼야 되는지를 출력한다. 만약 수가 양수라면 동혁이는 그 개수 만큼 피스를 더해야 하는 것이고, 음수라면 제거해야 하는 것이다.
1)
a, b, c, d, e, f = map(int,(input().split()))
print(1-a, 1-b, 2-c, 2-d, 2-e, 8-f)

2)
num = list(map(int, input().split()))
a_list = [1, 1, 2, 2, 2, 8]
for i in range(6):
    print(a_list[i] - num[i], end=' ')

 

a_list = [1,1,2,2,2,8]
b_list = map(int,(input().split()))

print([a-b for a,b in zip(a_list,b_list)])

이건 왜 안될까.....

아 얘는 [1, 0, 0, 0, 0, 1] 이렇게 나와서 안되나 보다!!! 나빠ㅜㅜ

 

그래도 zip()이라는걸 배웠다!!

리스트 요소끼리 빼는 법!! a, b를 하나의 패키지 처럼 묶고 빼주는거다~!

아래 블로그를 참고했다!

https://yeomss.tistory.com/285

 

Python 리스트 요소끼리 빼기 연산하기

리스트 끼리 빼보려고 했는데 안되더라구요. 나중에 기억하기 위해서 포스팅합니다.  List 요소끼리 빼기 연산하기 에러가 나는 이유 a = [1, 2, 3] b = [4, 5, 6] print(a - b) 위와 같은 코드를 작성하니

yeomss.tistory.com

 

 

10430

문제 (A+B)%C는 ((A%C) + (B%C))%C 와 같을까?
(A×B)%C는 ((A%C) × (B%C))%C 와 같을까?
세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000)
출력
첫째 줄에 (A+B)%C, 둘째 줄에 ((A%C) + (B%C))%C, 셋째 줄에 (A×B)%C, 넷째 줄에 ((A%C) × (B%C))%C를 출력한다.
a, b, c = map(int,input().split())

a,b,c=map(int,input().split())
print((a+b)%c)
print(((a%c)+(b%c))%c)
print((a*b)%c)
print(((a%c)*(b%c))%c)

 

 

2588

문제 (세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.



(1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.
출력
첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.
a = int(input())
b = input()
print(a*int(b[-1]))
print(a*int(b[-2]))
print(a*int(b[0]))
print(a*int(b[-1]) + a*int(b[-2])*10 + a*int(b[0])*100)

완전 재밌다!!!!!!!!!!!!!!!

 

 

10171

문제 아래 예제와 같이 고양이를 출력하시오.
입력
없음.
출력
고양이를 출력한다.
\    /\

 )  ( ')
(  /  )
 \(__)|
print("\\ /\\")
print(" ) ( ')")
print("( / )")
print(" \\(__)|")

 

\: 역슬래시 기호를 단일로 사용할 경우 'escape'의 성격을 띄며 원래의 의미를 벗어나 새로운 기능을 하게 됨.
\n: 줄바꿈 기호.
\": 큰 따옴표를 그냥 쓰게 되면 다른 의미로 받아들여 큰 따옴표를 직접 쓸 때 역슬래시를 써줌.
\': 작은 따옴표 또한 큰 따옴표와 같다.
\\: 역슬래쉬 하나를 출력한다.

출처:https://mirimeter.tistory.com/46

 

 

10172

문제 아래 예제와 같이 개를 출력하시오.
입력
없음.
출력
개를 출력한다.
|\_/|

|q p|   /}
( 0 )"""\
|"^"`    |
||_/=\\__|
print("|\\_/|")
print("|q p|   /}")
print("( 0 )\"\"\"\\")
print("|\"^\"`    |")
print("||_/=\\\\__|")

 

 

25083

문제 아래 예제와 같이 새싹를 출력하시오.
입력
없음.
출력
개를 출력한다.
         ,r'"7

r`-_   ,'  ,/
 \. ". L_r'
   `~\/
      |
      |
print("         ,r'\"7")
print("r`-_   ,'  ,/")
print(" \\. \". L_r'")
print("   `~\\/")
print("      |")
print("      |")

 

728x90

댓글