이제는 사용하지 않는 공부방/Algorithm
[백준] 문자열단계
환상상상속상
2020. 10. 4. 15:22
문자열 단계
정수를 문자열로 입력받는 문제. Python처럼 정수 크기에 제한이 없다면 상관 없으나, 예제 3은 일반적인 정수 자료형에 담기에 너무 크다는 점에 주목합시다.
www.acmicpc.net
1번
input_data = input()
print(ord(input_data))
2번
n = int(input())
s = list(map(int,input()))
result = 0
for i in range(n):
result += s[i]
print(result)
3번
alphabet = [-1] * 26
s = input()
count = 0
for c in s:
idx = ord(c) - ord('a')
if alphabet[idx] == -1:
alphabet[idx] = count
count += 1
for a in alphabet:
print(a, end = ' ')
4번
t = int(input())
for i in range(t):
num, s = input().split()
test = ''
for i in s:
test += int(num) * i
print(test)
5번 count, index, ord, chr
s = input().upper()
alphabet = [-1] * 26
idx = 0
for i in s:
idx = ord(i) - ord('A')
alphabet[idx] += 1
if alphabet.count(max(alphabet)) >= 2:
print('?')
else:
print(chr(alphabet.index(max(alphabet)) + ord('A')))
6번 a[::-1]: 전체를 복사하는데 reverse한다.
a, b = input().split()
a = int(a[::-1])
b = int(b[::-1])
if a > b:
print(a)
else:
print(b)
7번
남이 한 코드, list의 index사용
a= input()
alpha = ['A','B','C','D','E','F','G','H','I','J','K','L','M',
'N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
num = [3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,8,9,9,9,10,10,10,10]
count=[]
for i in a:
ind = alpha.index(i)
count.append(num[ind])
print(sum(count))
내가 한 코드, a.get(c) 키로 value불러오기
#1->2 2->4 즉 숫자를 알면 +1하면된다.
#문자열이 입력됐을때 숫자로 구분해야함
a = {'A': 2 , 'B': 2, 'C': 2, 'D': 3, 'E': 3,'F': 3,
'G': 4 ,'H': 4 ,'I': 4 ,'J': 5 ,'K': 5 ,'L': 5 ,
'M': 6 ,'N': 6 ,'O': 6 ,'P': 7 ,'Q': 7 ,
'R': 7 ,'S': 7 ,'T': 8 ,'U': 8 ,'V': 8 ,
'W': 9 ,'X': 9 ,'Y': 9 ,'Z': 9 ,}
s = input()
sum = 0
for c in s:
sum += a.get(c) + 1
print(sum)
8번
그룹단어체커
실패.
def check_group(s):
result = True
for c in s:
idx = s.index(c)
b = s[idx + 1:]
print(b)
print(b.find(c))
if b.find(c) == -1:
continue
if 0 != b.find(c):
result = False
break
return result
count = 0
n = int(input())
for i in range(n):
s = input()
if check_group(s):
count += 1
print(count)
타인의 코드
배울 점: arr에 저장을 해두고 확인 할 수 있다니 천재다 이자식
즉, 이전에 'a'문자가 있었는데... 그럼 바로전에 있어야하잖아 그걸이용
n = int(input())
answer = 0
for case in range(n):
string = input()
arr = []
flag = True
for i in range(len(string)):
if string[i] in arr:
if string[i - 1] != string[i]:
flag = False
break
else:
arr.append(string[i])
if flag:
answer += 1
print(answer)