목차
TIL
- 알고리즘 강의 1-7 문자열과 내장 함수
- 백준 2440
- 백준 5622
TIL
오늘 정말 정신이 없었다. 맥북도 환경 설정을 해야 하고, 다시 위에서 공부할 거를 생각하니, 공부에 집중이 잘 안된다. 여기에 완전히 몰두를 이제 해야겠지? 너무 기대된다. 그 환경 속에서 얼마나 성장할지 생각하니, 가슴이 두근거린다.
알고리즘 강의 1-7
ord와 chr 함수는 문제 풀이를 위해 알고 있었지만, upper, lower, count, find, islower, isupper, isalpha 등 정말 강력하고 중요한 내장 함수를 배웠다. 이 강력한 내장 함수를 사용하면 문자열을 마음대로 주무 룰 수 있을 것만 같다.
Sec.1-7 문자열과 내장 함수
'''
문자열과 내장함수
'''
msg = "It is Time"
# 문자열 내장함수 upper
print(msg.upper())
# 문자열 내장함수 lower
print(msg.lower())
print(msg)
# tmp에 msg변수에 담긴 값이 upper 된 값이 들어감
tmp = msg.upper()
print(tmp)
# 문자열 내장함수 find
print(tmp.find('T'))
print(tmp.count('T'))
print(msg)
# slice 기능 해당String 인덱스 전 까지만
print(msg[:2])
print(msg[3:5])
print(len(msg))
# for 문으로 하나씩 접근
for i in range(len(msg)):
print(msg[i], end=' ')
print()
# for in 으로 접근
# msg 문자 하나하나로 접근
for x in msg:
print(x, end=' ')
print()
# isupper 내장 함수
# msg 에서 꺼내와서 x가 대문자면 출력
for x in msg:
if x.isupper():
print(x, end='')
print()
# islower 내장 함수
# msg 에서 꺼내와서 x가 소문자면 출력
for x in msg:
if x.islower():
print(x, end='')
print()
# isalpha 내장 함수
# 공백 제외, 알파벳만 출력
for x in msg:
if x.isalpha():
print(x, end='')
print()
# ord 내장 함수
# String의 ascii 코드 출력
tmp = 'AZ'
for x in tmp:
print(ord(x))
tmp = 'az'
for x in tmp:
print(ord(x))
# chr 내장 함수
# 수를 String으로 출력
tmp = 65
chr(tmp)
백준 2440 별 찍기 - 3
https://www.acmicpc.net/problem/2440
간단하지만, 생각보다 푸는 데 오래 걸린 것 같다. 처음에 in에 그냥 int를 넣어서 뜨는 오류에 당황했는데, 다시 보니 이게 리스트 같이 뭔가를 꺼내서 쓸 수 있는 것이 아니면 쓸 수 없다는 것을 알았다.
n = int(input())
for i in range(0, n):
for j in range(n - i):
print('*', end='')
print()
문제 풀이 시간 7분 내외
백준 5622 다이얼 런타임 에러
https://www.acmicpc.net/problem/5622
하나하나 다 읽어서 파싱 해줘야 하는데, 어떻게 해야 할까, 시간 복잡도 때문에 RuntimeError나 버렸다. elif를 모두 다 걸러서 나오는데, 이거를 해결할 방법이 없을까?
_str = input()
_str_arr = []
for i in range(len(_str)):
_str_arr.append(_str[i])
output = 0
def _checker(_input_str):
if 65 <= ord(_input_str) <= 67:
return 3
elif 68 <= ord(_input_str) <= 70:
return 4
elif 71 <= ord(_input_str) <= 73:
return 5
elif 74 <= ord(_input_str) <= 76:
return 6
elif 77 <= ord(_input_str) <= 79:
return 7
elif 80 <= ord(_input_str) <= 82:
return 8
elif 83 <= ord(_input_str) <= 85:
return 9
elif 86 <= ord(_input_str) <= 88:
return 10
for i in range(len(_str_arr)):
output += _checker(_str_arr[i])
print(output)
문제 투자 시간 26분 47초
'Today I Learned' 카테고리의 다른 글
[TIL] 백준 3009 네 번째 점 [21-11-07] (0) | 2021.11.08 |
---|---|
[TIL] 백준 11721 열 개씩 끊어 출력하기, C언어가 cpu에 작동하기까지 [21-11-06] (3) | 2021.11.06 |
[TIL] 백준 2750 [21-11-04] (0) | 2021.11.04 |
[TIL] PS 강의 Sec.01-3~6 / 조건문 / 반복문 / 반복문을 이용한 문제 풀이 / 중첩반복문, 백준 10817 세 수, 백준 2455 지능형 기차 [21-11-03] (0) | 2021.11.03 |
[TIL] 파이썬 알고리즘 문제풀이 강의 시작 / Sec.01-1~2, Sec.02-1 K번째 약수, 백준 10872 팩토리얼 [21-11-02] (0) | 2021.11.02 |