반응형
1) 사이트
2) 문제
쉽게 말해 112 212가 있을 때 거꾸로 보면, 211 212이므로 더 큰 212를 출력하라는 뜻입니다.
단, 본 입력한 숫자가 아닌 거꾸로 뒤집힌 결과를 출력해야합니다. (쓴이는 본 숫자 출력해서 한참 애먹었습니다.)
3) 파이썬 코드
result = 0
number1,number2=input().split(' ')
number1_c=int(number1)
number2_c=int(number2)
#수를 거꾸로 만들어 주자
for i in range(0,3):
if number1_c%10 > number2_c%10:
result = number1
break
elif number1_c%10 < number2_c%10:
result = number2
break
else :
result=number1
number1_c=int(number1_c/10)
number2_c=int(number2_c/10)
continue
print(result[::-1])
3-1) 선수 지식
파이썬 코드를 이해하기 위해 알아야 할 선수 지식이 있습니다.
1. 문자열로 입력값 받고 변수 여러 개로 나눠 저장하는 법
-> 변수1, 변수2 = input().split(' ') #여기서 split 안에 ' ' 은 구분자를 나타냅니다.
2. 배열 요소를 뒤집어 나타내기
-> 배열[::-1]
3-2) 설명
1. 결과값을 받을 변수를 초기화 해준다.
result=0
2. 3자리 수 2개를 변수에 저장한다.
number1,number2=input().split(' ')
3. % 나 / 를 사용해 비교 작업을 해줄 것이므로 변수 복사본을 만든다. (단, 비교하기 쉽게 int형으로 복사하자)
number1_c=int(number1)
number2_c=int(number2)
4. number1 또는 number2가 1의 자리부터 비교해 큰 경우가 나오면 결과 변수에 넣어준 후 반복문을 멈춘다.
for i in range(0:3):
if number1_c%10 > number2_c%10:
result=number1
break
if number1_c%10 < number2_c%10:
result=number2
break
3. number1과 number2가 같다면 number1을 결과 변수에 넣어준 후 다음 자릿수를 비교하기 위해 10으로 복사본을 나눠준다.
else :
if number1_c%10 == number2_c%10:
result=number1
number1_c=int(number1_c+number1_c/10)
number2_c=int(number2_c+number2_c/10)
continue
4. 거꾸로 뒤집힌 결과값을 출력한다. (result에는 문자열을 리스트 형식으로 바꾼 값이 들어있기 때문에 다음과 같은 제어가 가능하다.)
print(result[::-1])
4) c언어 코드
아직~
파이썬 주력으로 바꾸려다보니 c언어에 소홀해지기 시작 ㅋㅋㅋ
인턴 끝나면 한 번씩 다시 둘러봐야겠다.
끝!
반응형
'알고리즘 > 백준' 카테고리의 다른 글
2941번 크로아티아 알파벳 (0) | 2021.05.23 |
---|---|
5622번 다이얼 (0) | 2021.05.23 |
1152번 단어의 개수 (0) | 2021.05.11 |
1157번 단어 공부 (0) | 2021.05.10 |
2675번 문자열 반복 (0) | 2021.04.26 |