Python/Baekjoon

백준 2908번 문제 풀이 - 공부하는 도비

DOVISH WISDOM 2020. 12. 20. 19:02  
728x90
반응형

www.acmicpc.net/problem/2908

 

2908번: 상수

상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두

www.acmicpc.net

이 문제는 여러 방법으로 풀 수 있는데, 저는 총 3가지 방법을 보여드리겠습니다.

 

우선, 리스트나 문자열을 거꾸로 출력할 수 있는 방법에 대해 알고 있어야한다.

ex) a = "34893" 이라고 했을 때, a = a[::-1]는 처음부터 끝까지 반대로를 뜻합니다.

 

문자열 자료형에 대해 index로 접근하는 것인데, 자세한 내용은 아래 링크를 확인해주세요!

docs.python.org/release/2.3.5/whatsnew/section-slices.html 

 

15 Extended Slices

15 Extended Slices Ever since Python 1.4, the slicing syntax has supported an optional third ``step'' or ``stride'' argument. For example, these are all legal Python syntax: L[1:10:2], L[:-1:1], L[::-1]. This was added to Python at the request of the devel

docs.python.org

1. 한줄 코딩

소스코드

저는 import sys 를 해서 두줄로 나오지만, sys.stdin을 사용하지 않고, input()함수를 사용하면 1줄로도 나타낼 수 있습니다.

 

2. max() 함수 따로 적기

소스코드

개인적으로 길게 한줄로 적는거 보다, 여러 줄이 되더라도 한 눈에 알아보기 좋게 코딩하는걸 선호해서 max() 부분을 따로 뺀 방법입니다.

 

3. 모든 과정 나타내기

소스코드

입력받을 때 [::-1]을 사용하지 않고, 따로 변수 부분 재선언할 때 사용하였습니다,

그리고 max() 함수를 사용하는 대신, if문과 비교 연산자로 더 큰 수를 찾아냈습니다.

또한, end="" 함수를 사용해서 리스트 안에 값들은 한 줄로 출력되게 했습니다.

 

 

다양한 방법으로 코딩할 수 있는데 각자 맞는 방법으로 프로그래밍 하시면 될 것 같습니다.!