본문 바로가기
Learning-log/Algorithm 문풀

백준(파이썬,python) - 2588번, 10171번, 10172번, 25083번 (2022.10.13~14)

by why제곱 2022. 10. 19.

1. 2588번

 

1) 문제

 

2) 풀이

 

3) 문법 및 풀이과정

이 문제의 대부분의 문법은 그 동안 풀어온 백준 문제들을 통해 배운 문법이라 설명은 생략하겠다.

다만, 두번째 줄의 입력되는 값의 경우, (3),(4),(5)를 구하기 위해서는 각 자릿값이 아닌 그 숫자만을 곱해야하는 문제가 있기에 처음부터 int값으로 입력받지 않았다. 

( 처음에는 int로 입력 받고 100 또는 10으로 나눈 몫을 결과로 하는 방법도 시도했으나 위 풀이가 훨씬 간결하고 깔끔해서 이 방법을 최종 답안으로 택했다.)

b를 int로 변환하지 않으면 b는 string이 되므로 index를 이용해 원하는 위치의 문자를 추출할 수 있다. 백의 자리, 십의 자리 등 원하는 숫자를 index를 통해 추출한 후 int로 바꿔준 후 a와 곱하면 문제에서 원하는 결과를 얻을 수 있다. 

 


 

2. 10171번

 

1) 문제

 

2) 풀이

 

3) 문법 및 풀이과정

- 큰 따옴표 안에 특수문자 넣기

파이썬에서 " " 큰 따옴표는 문자열을 입력할 때 사용된다. 이 때 큰 따옴표 내에 아래와 같은 특수문자를 이용해 줄바꿈, 탭 등등을 표현할 수 있다.

print("\n")  #줄바꿈
print("\t")  #수평 탭
print("\\")  #백슬러시
print("\"")  #큰따옴표
print("\'")  #작은따옴표

즉 백슬러시나 작은따옴표, 큰 따옴표를 표현하고 싶다면 앞에 백슬러시를 붙이면 내가 표현하고 싶은 백슬러시나 작은따옴표, 큰 따옴표를 백슬러시가 무력화(?) 시켜 문자열 있는 그대로 표현될 수 있게 해주는 것이다.

혹은 문자열 전체 앞에 r을 붙여 안에 있는 모든 특수문자를 무력화(?)시키는 방법도 있다. 다만 이는 아래에서도 설명하겠지만 모든 특수문자를 무력화시키기 때문에 중간중간 특수문자가 필요한 경우에 비효율적인 것 같다.

 

 

# 여담 ,,  처음에 문제 보고 어디가 고양이야? 했다 . 근데 코딩해서 출력해보니 귀여운 고양이 옆모습 ^//^


 

 

 

3. 10172번

 

1) 문제

 

2) 풀이

 

3) 문법 및 풀이과정

10171번과 마찬가지로 \를 이용해 특수문자를 무력화시키면 된다. 

10171번과 달리 이번에는 print를 반복하지 않고 sep를 통해 줄바꿈을 시도했다.

이 때, \의 개수와 ' , " 를 잘 보고 실수하지 않도록 해야한다.


 

4. 25083번

 

1) 문제

 

2) 풀이

 

3) 문법 및 풀이과정

정말 부들부들하게 만들었던 문제. 75번째 줄처럼 r을 사용할 때 주의를 해야함을 느끼게 해준 문제였다.

특수기호가 너무 많길래 r을 사용해보자 하는 마음에서 r을 여러 줄에 사용했으나 기존에 입력해놓은 백슬래시 모두가 무력화될 것을 미처 생각하지 못하고 오답을 몇번은 했던 애증의 문제였다.

다른 문법 내용은 위 10171번과 10172번의 문법과 동일하다.