[Python] 백준 알고리즘 1단계

15830 단어 pythonbojboj

0. 백준 알고리즘

알고리즘 공부를 다시 시작하면서 프론트엔드를 가고싶다 생각은 들었지만
아직 작성은 파이썬이 더 쉽기 때문에 1~12 단계를 파이썬으로 한번씩 다 작성한 뒤,
자바스크립트로 재작성하는 것이 목표.

1단계 입출력과 사칙연산

2557 Hello World

print("Hello World!")

print( "문자" ) 형태로 따옴표로 감싸 문자열을 출력한다.

10718 We love kriii

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

print("") 형식은 한줄로 입력하며 같은 내용을 입력시 2줄로 작성 가능하다.

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

이스케이프 코드를 활용하여 위와 같은 방식으로 작성가능.

이스케이프 코드
\n : 줄바꿈
\t : tap 넘김
\b : 백스페이스
\0 : 공백 (null값)
\ : (역슬래시) 출력
\' : ' 출력

10171 고양이

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

위 이스케이프 코드를 활용한 코드로 \출력을 위한 \ 코드 작성이 포인트였다.
(\를 하나만 작성해도 성공처리가 되는데 왜인지 잘 모르겠다.)

10172 개

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

10171번과 같은 형식. 이 문제에서는 \가 한번이면 오답처리를 했다.


1000 A+B

a, b = input().split()
print(int(a)+int(b))

a, b 값을 한줄에 입력하기 위해 split()를 사용하여 공백을 기준으로 값을 나누었다.
a, b 값을 더하기 위해 int() 내에 입력하여 정수형으로 변환하여 값의 오류가 나지 않도록 했다.

1001 A-B

a, b = input().split()
print(int(a)-int(b))

1000번과 같은 입출력 방식이기 때문에 쉽게 작성이 가능하였다.

10998 A×B

a, b = input().split()
print(int(a)*int(b))

1000번과 동일한 입출력 방식, 출력부분만 수정 하였다 (하단에 입출력 정리 참고)

1008 A/B

a, b = input().split()
print(int(a)/int(b))

1000, 1001, 10998, 1008번으로 기본 사칙연산 출력 법 문제가 나왔다.

Python 기본연산
A+B : 덧셈
A-B : 뺄셈
A*B : 곱셈
A/B : 나눗셈

A//B : 나눗셈 이후 정수부분 저장
A%B : 나눗셈 이후 나머지 저장
A**B : 거듭제곱

10869 사칙연산

a, b = input().split()

print(int(a)+int(b))
print(int(a)-int(b))
print(int(a)*int(b))
print(int(a)//int(b))
print(int(a)%int(b))

위 기본 연산을 활용하여 각 줄에 해당하는 연산을 출력하였다.


10926 ??!

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

문자열 연결하는 방식으로 input()에서 받은 문자열 뒤에 ??! 를 더하는 방법으로 문자열도 + 를 통해 연결할 수 있다.

18108 1998년생인 내가 태국에서는 2541년생?!

불기 - 서기의 값은 2541 - 1998543 이다. 불기 값을 서기값으로 변환하는 문제.

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

a를 정수로 입력받아 값을 계산하여 출력한다.

10430 나머지

첫째 줄에 (A+B)%C, 둘째 줄에 ((A%C) + (B%C))%C, 셋째 줄에 (A×B)%C, 넷째 줄에 ((A%C) × (B%C))%C를 출력

A, B, C = input().split()

a = int(A)
b = int(B)
c = int(C)

print((a+b)%c)
print(((a%c)+(b%c))%c)
print((a*b)%c)
print(((a%c)*(b%c))%c)

값을 한줄로 입력 받기 때문에 split()으로 문자열을 분리하여 저장한 뒤 각각 하나씩 정수값으로 재할당 하는 작업을 거쳤다.

2588 곱셈

어릴적 곱셈을 배울때 쓰던 방식을 코드로 작성하는 문제로 입력받은 값을 한번 변환하여 곱셈을 하는 작업이 필요했다.

a = int(input())
b = input()

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

print(a*int(b))

b값을 나누어 나머지값 혹은 몫 값을 이용하여 작성하는 방법도 있지만
문제에서 숫자를 하나씩 곱하는 방식이 더 직관적인 것 같아 문자열로 받아 인덱스 값을 정수값으로 전환, 곱셈을 수행하는 방식으로 변경하였다.

좋은 웹페이지 즐겨찾기