반응형
11654 아스키코드
a = input()
print(ord(a))
ord(문자) : 문자에 맞는 아스키 코드 값
chr(숫자) : 숫자에 맞는 아스키 코드 문자
11720 숫자의 합
n = int(input())
num = list(map(int,input())) #입력문을 한 문자씩 int로 변환한 뒤 list로 바꿔서 sum구해줌
print(sum(num))
# 다른 사람 풀이 : map을 바로 sum으로 감싸줘도 같은 결과.
n = input()
print(sum(map(int,input())))
10809 알파벳 찾기
a =[-1]*26 # 결과 배열 -1로 초기화 해줌
alp = input()
for i, n in enumerate(alp): #enumerate 사용 index랑 값 둘다 가져옴
x = 26+ord(n)-122-1 # 문자의 아스키 코드 값을 형식에 맞게 설정 ex) a=0 ,b=1 ,c=2 ...z=25
if a[x] != -1: continue # 이미 인덱스값 존재하면 패스
a[x] = i # 문자 인덱스 값 넣어줌
print(" ".join(map(str,a))) # for문 쓰기 귀찮아서 join으로 출력해줌
emuerate : index랑 배열값을 동시에 사용할 수 있음.
join : 배열을 문자열로 변환시켜줌
# 다른 사람 풀이
word = input()
alphabet = list(range(97,123))
for x in alphabet :
print(word.find(chr(x)))
a~z까지 돌면서 find함수(찾는 문자가 없으면 -1반환)를 통해 word에 값이 존재하면 그 값의 인덱스를 반환해줌
2675 문자열 반복
n = int(input())
result = []
for i in range(n):
r,s = input().split()
m = ""
for i in s:
m = m + i*int(r)
result.append(m)
for i in result: # 출력
print(i)
1157 단어 공부
s = input()
upS = s.upper() # 대문자로 변환
freq = [0]*26 # 빈도수 배열 생성
for i in upS:
idx = ord(i)-90 +25 # 배열에 넣기 위해 아스키코드 재설정
freq[idx] +=1 # 해당 문자 인덱스에 1추가
maxN = max(freq) # 가장 빈도수가 많은 수 찾음
if freq.count(maxN) >1: # 가장 큰 빈도수가 여러개면 ? 출력
print("?")
else:
print(chr(freq.index(maxN)+ord("A"))) # 가장 큰 빈도수의 인덱스에 해당하는 문자 출력
https://ooyoung.tistory.com/70 <- 이 분의 풀이법이 더 시간이 덜 걸리고 아스키코드를 몰라도 됨.
또 보기도 쉬움.
1152 단어의 개수
a = input()
count = len(a.split())
print(count)
2908 상수
n = input().split()
revN = [i[::-1] for i in n] # 각 수를 역순으로 바꿔줌 (slice)
intN = map(int,revN) # 각 수를 int형으로 변환
print(max(intN)) # 큰 값 반환
5622 다이얼
m = ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ']
a = input()
count = 0
for i in range(len(a)): # 문자를 돌면서
for j in m: # 알파벳 돌면서
if a[i] in j: # m에 문자가 있으면
count+=m.index(j)+3 # 초 더해줌
print(count)
2941 크로아티아 알파벳
cro = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
a = input()
for i in cro:
a = a.replace(i,'1') # 크로아티아 문자를 하나로 바꿔줌
print(len(a))
replace는 정말 편리하다.
1316 그룹 단어 체커
n = int(input())
for i in range(n):
m = input() # 문자 입력받음
for i in range(len(m)-1):
if m[i]!=m[i+1]: # 연속되는 문자가 아닐때
if m[i] in m[i+1:]: # 현재 문자가 뒤에 또 존재할 경우 n-1해줌
n-=1
break
print(n)
찾아보니 정렬해서 찿는 방식도 있었다.
# 출처 https://aisiunme.github.io/algorithm/2018/08/13/baekjoon-group-word-checker-1316.md/
result = 0
for i in range(int(input())):
word = input()
if list(word) == sorted(word, key=word.find):
result += 1
print(result)
반응형
'코딩테스트 > 백준 준비(과거)' 카테고리의 다른 글
(파이썬) 백준 1978, 2581, 11653, 1929, 4948, 9020, 1085, 3009, 4153 (0) | 2021.07.07 |
---|---|
(파이썬) 백준 1712, 1193, 2869, 10250, 2775, 2839, 1011 (0) | 2021.07.06 |
(파이썬) 백준 4673, 1065 (0) | 2021.06.26 |
(파이썬) 백준 10818, 2562, 2577, 3052, 1546, 8958, 4344 (0) | 2021.06.26 |
(파이썬) 백준 2739, 15552, 11022, 2439, 10871, 10952, 1110 (0) | 2021.06.24 |
댓글