티스토리 뷰

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

 

 

 

 

 

 

 

오늘은 4,5,6강을 수강하였습니다. 

 

주제는 문자열로, 지난 시간 배운 배열과 비슷합니다.

다만, 특징적인 한 가지가 있는데 문자열 간 계산이 가능하다는 점입니다. 

 

'b' - 'a' 라고 한다면 당연히 타입에러가 발생합니다. 

TypeError: unsupported operand type(s) for -: 'str' and 'str' 

 

하지만

ord('b') - ord('a')

 

라고 한다면 1이라는 값이 출력됩니다. 

 

ord 란, 하나의 문자를 인자로 받고 해당 문자에 해당하는 유니코드 정수를 반환하는 함수를 말합니다. 

그래서 ord('a')를 넣으면 정수 97을 반환하죠. 숫자이기 때문에 계산이 가능한 것입니다.

 

문자열 b와 문자열 a를 계산하는 방법을 알았습니다.

 

여기서 하나 더, 문자열 9에서 문자열 1을 빼는 것도? 가능합니다. 

>>> '9' - '1'
TypeError: unsupported operand type(s) for -: 'str' and 'str'

>>> ord('9')
57

>>> ord('9') - ord('1')
8

 

 

숫자이지만 문자열을 형태인 경우가 많습니다. 이런 경우에도 ord를 이용해서 계산 가능합니다. 

 

파이썬에서는 숫자 문자열을 숫자로 바꾸기 위해서 int('1') 이렇게도 사용할 수 있습니다. 

int('9') - int('1') 도 같은 결과를 내죠. 둘의 차이를 간단히 보자면,

 

ord('9') - ord('1'):  

  • ord 함수는 문자의 유니코드 코드 포인트를 반환합니다.
  • '9'의 유니코드 값은 57이고, '1'의 유니코드 값은 49입니다.
  • 따라서 ord('9') - ord('1')는 57 - 49 = 8이 됩니다.
  • 이 방법은 두 문자의 유니코드 값의 차이를 계산합니다.

int('9') - int('1'):  

  • int 함수는 문자열을 정수로 변환합니다.
  • '9'는 정수 9로, '1'는 정수 1로 변환됩니다.
  • 따라서 int('9') - int('1')는 9 - 1 = 8이 됩니다.
  • 이 방법은 두 숫자 문자열을 정수로 변환한 후 그 차이를 계산합니다.

 

int는 문자열을 정수로 변환하는 과정이 들어가기 때문에 ord보다 조금 더 느리지만 일반적인 코드에서는 미세한 차이라 큰 영향을 주진 않습니다. 

 

 

 

 

위에서 배운 개념을 이용해서 문제를 풀 수 있습니다.

10809번: 알파벳 찾기

내가 푼 풀이

import string

output = ''
for i in string.ascii_lowercase:
    if i in input:
        output += " " + str(input.index(i))
    else:
        output += ' -1'

assert output[1:] == answer, "FAIL"        

 

강사님 풀이

# 이전에는 체크 배열을 0->1 로만 했지만 여기에 위치를 기록하면 된다.

s = 'baekjoon'

check = [-1] * 26

for i in range(len(s)):
    index = ord(s[i]) - ord('a')
    
    if check[index] == -1:
        check[index] = i

for i in range(26):
    print(check[i], end=' ')

 

 

 

11720번: 숫자의 합

내가 푼 풀이

input = "10987654321"
sum(int(i) for i in input)

 

강사님 풀이

n = int(input())  # 인풋 숫자 갯수
s = input()  # 숫자 문자열

sum = 0
for i in range(n):
    sum += ord(s[i]) - ord('0')

print(sum)    

 

 


https://abit.ly/lisbva

 

Abit.ly 다운받기

 

abit.ly

 

 

 

 

#패스트캠퍼스 #환급챌린지 #패스트캠퍼스후기 #습관형성 #직장인자기계발 #오공완

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함