코딩/백준알고리즘
[파이썬] 7. 함수+문자열...백준(1065, 11654, 11720, 10809, 2675, 1152, 2908)
레이첼 맥
2022. 9. 8. 20:39
점점 어려워진다.
문제를 접할수록 아직 내가 문법이 부족하다는것을 많이 느낀다.
[1065] 한수

해결 포인트
한자릿수 두자릿수 모든 숫자는 등차수열이다.
이를 먼저 조건을 건다음 인덱스 0,1 과 2,3을 비교하여 카운트 해보자
답안
import sys
x = int(sys.stdin.readline())
cnt = 0
for i in range(1,x+1):
if i < 100:
cnt += 1
else:
b = list(map(int,str(i)))
if b[1] - b[0] == b[2] - b[1]:
cnt += 1
print(cnt)
1 ~ 입력받은수까지가 문제에서 요구하는 범위이다.
각 요소를 숫자형으로 변경하여 리스트를 만들어 비교하면 된다.
[11654] 아스키 코드

해결 포인트
ord()를 사용하면 쉽게 풀이 가능하다.
답안
print(ord(input()))
[11720] 숫자의 합

해결 포인트
그냥 쉽다....
답안
a = int(input())
b = input()
sum = 0
for i in b:
sum += int(i)
print(sum)
[10809] 알파벳 찾기

해결 포인트
변수 두개
하나는 입력받고
하나는 알파벳을 저장하여 a in b 를 이용하여 찾고 해당 인덱스를 출력하면 된다.
답안
from operator import index
a = input()
b = 'abcdefghijklmnopqrstuvwxyz'
for i in b:
if i not in a:
print(-1,end=" ")
else:
print(a.index(i),end=" ")
[2675] 문자열 반복

해결 포인트
공백으로 구분되어 입력받은뒤 입력받은 수 만큼 인덱스 하나하나 반복하여 출력하면 된다.
답안
a = int(input())
sum = ""
for i in range(a):
b, c = input().split()
for j in range(len(c)):
sum += c[j]*int(b)
print(sum)
sum = ""
[1152] 단어의 개수

해결 포인트
공백으로 단어를 입력받고 len()을 이용하면 끝이다.
답안
a = input().split()
print(len(a))
[2908] 상수

해결 포인트
[::-1] 을 이용하면 문자열을 반대로 구성할 수 있다.
답안
a,b = input().split()
a = a[::-1]
b = b[::-1]
if a<b:
print(b)
else:
print(a)