[백준] python 기초알고리즘 7.문자열

BOJ 11654 - 아스키 코드

x = str(input())
print(ord(x))
A
65

BOJ 11720 - 숫자의 합

input()
x = int(input())
a = sum(map(int, str(x)))
print(a)
11
10987654321
46

BOJ 10809 - 알파벳 찾기

x = list(map(str,input()))
a = [-1 for i in range(26)]
# 각 인덱스 위치는 ASCII 코드 -65
for j in range(len(x)):
    index = ord(x[j])-97
    if a[index] == -1:
        a[index] = j

print(" ".join(map(str,a)))
baekjoon
1 0 -1 -1 2 -1 -1 -1 -1 4 3 -1 -1 7 5 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1

BOJ 2675 - 문자열 반복

n = int(input())
for i in range(n):
    r, x = input().split(' ')
    a = list(map(str,x))
    p = []
    for j in range(len(a)):
        for _ in range(int(r)):
            p.append(a[j])
    print("".join(p))
2
3 ABC
AAABBBCCC
5 /HTP
/////HHHHHTTTTTPPPPP

BOJ 1157 - 단어 공부

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.

# 65~122
x = list(map(str,input()))
a = [0]*91
result = ''

for i in range(len(x)):
    index = ord(x[i])
    if ord(x[i]) > 90:
        index -= 32
    a[index] += 1
    
# 리스트 안에 중복값이 존재하는 경우 알아내기
max_count = 0
for j in range(len(a)):
    if max(a) == a[j]:
        max_count +=1

if max_count > 1:
    result = '?'
# 리스트 중 가장 큰 값의 index 구하기
else:
    result = chr(a.index(max(a)))

print(result)
# 입력 : Mississipi
# 출력 : ?
# 입력 : baaa
# 출력 : A

BOJ 1152 - 단어의 개수

영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.

x = list(map(str,input().strip().split(' ')))

# 단어 없이 띄어쓰기만 있는 경우를 생각해야 한다.
if x == ['']:
    print(0)
else:
    print(len(x))
# 입력 :  Mazatneunde Wae Teullyeoyo
# 출력 : 3

BOJ 2941 - 크로아티아 알파벳

x = list(input())
v = [x[0]]

for i in range(1,len(x)):
    if x[i]=='=':
        v.pop()
        if x[i-1]=='c':
            v.append('c=')
        elif x[i-1]=='s':
            v.append('s=')
        else: #z=이거나 dz=일때
            if i>=2 and x[i-2]=='d':
                v.pop()
                v.append('dz=')
            else:
                v.append('z=')
    elif x[i]=='-':
        v.pop()
        if x[i-1]=='c':
            v.append('c-')
        else:
            v.append('d-')
    elif x[i]=='j':
        if x[i-1]=='l':
            v.pop()
            v.append('lj')
        elif x[i-1]=='n':
            v.pop()
            v.append('nj')
        else:
            v.append('j')
    else:
        v.append(x[i])
        
print(len(v))

BOJ 1316 - 그룹 단어 체커

n = int(input())
count = 0

def checker(x):
    v = [0]*123
    for i in range(len(x)):
        if v[ord(x[i])]==0:
            v[ord(x[i])]=1
        else:
            if x[i-1]!=x[i]:
                return False
            
    return True
    
for _ in range(n):
    x = list(input())
    if checker(x):
        count += 1
    
print(count)

태그:

카테고리:

댓글남기기