백준 - 문자열
2022. 11. 12. 21:45ㆍ백준 - Python
728x90
백준의 문자열 문제들을 python으로 풀이한 것입니다.
1. 아스키 코드
ch = input()
print(ord(ch))
2. 숫자의 합
n = int(input())
nList = list(input())
s = 0
for i in range(n):
s += int(nList[i])
print(s)
3. 알파벳 찾기
idxs = [-1] * 26
string = list(input())
for s in string:
idxs[ord(s) - 97] = string.index(s)
for i in idxs:
print(i, end=' ')
4. 문자열 반복
t = int(input())
for i in range(t):
r, s = input().split()
r = int(r)
s = list(s)
for _s in s:
print(_s * r, end='')
print()
5. 단어 공부
string = list(input().upper())
board = {}
for i in range(65, 91):
board[chr(i)] = 0
for s in string:
board[s] += 1
result = [k for k, v in board.items() if max(board.values()) == v]
if len(result) > 1:
print('?')
else:
print(result[0])
6. 단어의 개수
string = input().split()
print(len(string))
7. 상수
a, b = map(int, input().split())
a = (a % 10) * 100 + (a % 100 // 10) * 10 + (a // 100)
b = (b % 10) * 100 + (b % 100 // 10) * 10 + (b // 100)
if a > b:
print(a)
else:
print(b)
8. 다이얼
alpha = ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ']
string = list(input())
number = []
t = 0
for s in string:
for i in range(len(alpha)):
if s in alpha[i]:
number.append(str((i + 2)))
break
for n in number:
t += int(n) + 1
print(t)
9. 크로아티아 알파벳
s = input()
croatia = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
cnt = 0
for i in croatia:
cnt += s.count(i)
s = s.replace(i, ' ')
s = s.replace(' ', '')
cnt += len(s)
print(cnt)
10. 그룹 단어 체커
n = int(input())
cnt = 0
for i in range(n):
string = list(input())
alState = [0] * 26
result = True
for s in range(len(string)):
idx = ord(string[s]) - 97
if alState[idx] == 0:
alState[idx] = 1 # 1번 나왔다는 의미
else:
if string[s] == string[s - 1]:
continue
else:
result = False
break
if result:
cnt += 1
print(cnt)
728x90
'백준 - Python' 카테고리의 다른 글
백준 - 함수 (0) | 2022.11.13 |
---|---|
백준 - 2차원 배열 (0) | 2022.11.12 |
백준 - 1차원 배열 (0) | 2022.11.12 |
백준 - 반복문 (0) | 2022.11.12 |
백준 - 조건문 (0) | 2022.11.12 |