[Python] 백준 2908 | 상수

heige·2023년 12월 1일
0

BOJ

목록 보기
9/46
post-thumbnail

문제

https://www.acmicpc.net/problem/2908

풀이

방법 1 : 리스트 ↔️ 문자열

#리스트와 문자열 변환
A, B = input().split()
listA = list(A)
listB = list(B)
listA.reverse()
listB.reverse()
A = ''.join(listA)
B = ''.join(listB)
int(A), int(B)
if A > B:
    print(A)
else :
    print(B)

reverse()

여기서 알게 된 점. 문자열 자체는 reverse() 함수를 사용할 수 없다. 리스트 내장함수이기 때문에 문자열을 리스트로 변환하고 사용해야 한다.

c.f reversed(str)
이 방식으로 문제를 풀 수도 있다.

''.join()

리스트의 요소를 합쳐서 하나의 문자열로 만든다.

  • ''.join(list)
    ''.join(리스트)를 이용하면 매개변수로 들어온 ['a', 'b', 'c'] 이런 식의 리스트를 'abc'의 문자열로 합쳐서 반환해주는 함수이다.
  • '구분자'.join(리스트)
    '구분자'.join(리스트)를 이용하면 리스트의 값과 값 사이에 '구분자'에 들어온 구분자를 넣어서 하나의 문자열로 합쳐준다.
    '_'.join(['a', 'b', 'c'])라 하면 "a_b_c" 와 같은 형태로 문자열을 만들어서 반환해준다.

그리고 정수 비교할 때는 문자열을 int로 변환해서 비교해야 함!

방법 2 : 문자열 슬라이싱 [::-1]

# 문자열 슬라이싱 이용
A, B = input().split()
A2 = A[::-1]
B2 = B[::-1]
int(A2), int(B2)
if A2 > B2:
    print(A2)
else :
    print(B2)

문자열[:] 을 하면 문자열[시작:끝] 과 같으며, 이것은 문자열을 앞에서부터 하나씩 슬라이싱 해서 새로운 문자열을 만드는 것이다.
문자열[시작:끝:규칙]으로 세 번째 숫자가 들어갈 수 있는데, 이때의 규칙은 슬라이싱을 하는 규칙을 말한다.
여기에 1이 들어가는 것이 디폴트 값이며 1이 들어가게 되면 문자열을 앞에서부터 하나씩 잘라서 새로운 문자열을 만든다.
2가 들어가게 되면 앞에서부터 한 칸씩 띄워서 2씩 잘라주어 새로운 문자열을 만들어 준다.인덱스를 기준으로 보면 [0], [2], [4] .. 이런 식으로 문자열을 자르게 됩니다.
이 규칙에 -1을 넣어서 뒤에서부터 잘라서 문자열을 뒤집을 수 있다.

name1 = "BlockDMask's blog"

name2 = name1[::1]
name3 = name1[::2]
name4 = name1[::-1]
name5 = name1[::-2]

print(f'name       : {name1}')
print(f'name[::1]  : {name2}')
print(f'name[::2]  : {name3}')
print(f'name[::-1] : {name4}') # 우리가 원하는 역순 출력
print(f'name[::-2] : {name5}')
profile
웹 백엔드와 클라우드 정복을 위해 탄탄한 기반을 쌓아가고 있는 예비개발자입니다. 'IT You Up'은 'Eat You Up'이라는 표현에서 비롯되어, IT 지식을 끝까지 먹어치운다는 담고 있습니다.

0개의 댓글