[백준 문제풀이/파이썬] 1단계_입출력과 사칙연산

2022. 9. 16. 07:15백준 문제 풀이/파이썬

1)2557 (  ㅇ )

>정답

print("hello world!")

 

2)10718 ( ㅇ )

>정답

print("강한친구 대한육군")

print("강한친구 대한육군")

 

3)1000 (  x ) 

>오답

a =int(input())
b =int(input())
print(a+b)

-백준 : 런타임에러 

-파이참 : ValueError: invalid literal for int() with base 10: '1 2'

 ▶굳이 쪼개서 쓸필요 없다. 

>정답(구글링)

A,B  = input().split()
print(int(A)+int(B))

▶굳이 A,B에 int 안해줘도 되는이유는 애초에 숫자로 받기 때문이다(?) 

+)1001, 10998, 1008 10869은 같은 맥락의 문제다. print 안의 수식에 연산기호만 바꿔주면 정답.

 

4) 10926( ㅇ )

>오답

a=input()
print("a"+"??!")

▶a를 대입해야하는데 "a" 가 되어서 a??! 라고 출력됨.

>정답(self)

a=input()
print(a+"??!")

 

5)18108( ㅇ )

>정답

a=int(input())
print(a-543)

▶입력값은 정수여야해서 int(inupt())을 해준다.

좀 더 컴퓨터 적인 답변은 다음과 같다. 

Number = int(input())
Result = Number - 543
print(Result)

 

6)3003 ( x )

>오답

손도 못댐

 

>정답(권기현 튜터님 강의)

가)단순 수식

#입력값 받기 (각자 종목별 값)
k, q, r, b, kn, p = map(int,input().split())

#킹은 1개만 필요, 그렇다면 1 - k 해주면 추가로 필요하거나 남는 개수가 나옴.
k = 1 - k
q = 1 - q
r = 2 - r
b = 2 - b
kn = 2 - kn
p = 8 - p

print(k, q, r, b, kn, p)

나)for문과 list 활용

#있어야 하는 체스말의 수
chess_pieces = [1, 1, 2, 2, 2, 8]

#내가 가지고 있는 체스말의 수
my_pieces = list(map(int,input().split()))

for i in range(6):
    print(chess_pieces[i]-my_pieces[i], end=' ')

+) print 마지막에 end = ' ' 해주고 ''안에 한칸 띄우면 옆으로 숫자가 병렬됨. 만약 아무것도 없으면 아래로 나열되고 두칸을 띄우고 싶을 때는 /n/n 해주면됨. ''를 붙여쓰면 다음 것과 붙은 채로 결과값이 출력됨. 

 

7)10430 (  ㅇ  )

>오답

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)

▶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)

 

8)2588( x )

>오답 

손도 못댐.

 

>정답(구글링)

#1 문자열 이용한 풀이(반복문 x)
a = int(input())
b=input()



print(a*int(b[2]))
print(a*int(b[1]))
print(a*int(b[0]))
print(a*int(b))

#2 문자열 이용한 풀이(반복문 o)
a = int(input())
b = input()
 
for i in range(3, 0, -1) :  #range ->3부터 0까지 1씩 빼주면서 하나씩 찍기(3은 포함 안함.)
    print(a * int(b[i-1]))

print(a * int(b))

#아래와 같이 써줘도 가능
#for i in range(2, -1, -1) :
    #print(a*int(b[i,1]))
    
#3 산술 연산자를 이용한 풀이
a=int(input())
b=int(input())

print(a*(b%10))
print(a*(b%100//10))
print(a*(b%10//100))
print(a*b)

▶산술연산자.. 마법.. b가 385aus b%10은 385를 10으로 나눈 나머지, 즉 5.

b%100//10 하면 385를 100으로 나눈 나머지는 85, 85를 다시 10으로 나누면 몫은 8(여기서 //는 몫을 구하는것)

b//100은 385를 100으로 나누면 몫은 3

 

 

9)10171 ( ㅇ ) 

>오답

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

▶쌍따옴표 안써줌.. 문자열에는 쌍따옴표를 쓰자. + 역슬래쉬는 한번 더 써주기.

>정답

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

 +)10172, 25083 도 같은 맥락이다. 

단, 25083 에서는 \\유의해줘야하고 "출력을 위해서는 \"를 사용해줘야 한다. 작은따옴표도 \' 해줘야 한다.

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