#1120 숫자의 합
풀이 1. 주어진 조건 모두 사용 / 36ms
N=int(input())
s=list(map(int, str(input())))
a=0
for i in range(N):
a += s[i]
print(a)
숫자개수 N을 int로 입력받고,
숫자열을 str으로 입력받아 list 형태로 저장하면 각각의 숫자가 별개의 원소로 저장되나,
연산을 위해 int형식으로 매핑하여 받아줌.
-> for문을 사용하여 N회만큼 원소를 덧셈치환하여 이 값을 프린트.
풀이2. 불필요한 조건 생략 / 36ms
N=int(input())
s=list(map(int, str(input())))
print(sum(s))
어차피 문제에서 주어지는 연산은 한자리의 정수를 더하는 것이므로
구분자가 없는 string를 한글자씩 구분하여 저장하는 list 자료형을 사용.
list의 각 원소의 총합을 구한다. 단, 연산을 위해 입력과정에서 int형식으로 변환이 필요함.
#10809 알파벳 찾기
풀이 1. for문 이용
S = list(input())
abc = 'abcdefghijklmnopqrstuvwxyz'
for i in abc:
if i in S:
print(S.index(i), end = ' ')
else:
print(-1, end = ' ')
abc 문자열의 i번째 글자가 입력받은 S에 있으면 S에서의 위치를, 없으면 -1을 출력한다.
풀이 2. find 함수 이용
S = input()
for x in 'abcdefghijklmnopqrstuvwxyz':
print(S.find(x), end =' ')
알파벳 문자열의 x번째 글자가 입력받은 S에 있으면 그 위치를, 없으면 -1을 출력한다.
#2908 상수
A, B = input().split()
A = int(A[::-1])
B = int(B[::-1])
print(A) if A>B else print(B)
문자열의 배열을 역순으로 바꾸는 방법은 [::-1]을 붙여주는 것이다.
마지막의 프린트는 삼항 연산자 표현식으로 작성된 코드이다.
#5622 다이얼
alphabet_list = ['ABC','DEF','GHI','JKL','MNO','PQRS','TUV','WXYZ']
word = input()
time = 0
for unit in alphabet_list:
for i in unit:
for x in word:
if i==x:
time += alphabet_list.index(unit) +3
print(time)
for문을 여러번 중첩하여 한 사이클에서 여러개의 반복문이 돌아가게 만들었다.
#2941 크로아티아 알파벳
croatia = ['c=', 'c-','dz=','d-','lj','nj','s=','z=']
word = input()
for i in croatia:
word = word.replace(i,'*')
print(len(word))
크로아티아 알파벳을 별개의 기호 *로 대체하여 문자열의 길이를 출력했다.
#1316 그룹 단어 체커
n = int(input())
group_word = 0
for _ in range(n):
word = input()
error = 0
for index in range(len(word)-1):
if word[index] != word[index+1]:
new_word = word[index+1:]
if new_word.count(word[index]) > 0:
error += 1
if error == 0:
group_word += 1
print(group_word)
그룹단어가 아닌 경우를 판별하기 위한 알고리즘을 짜주었다.
알파벳이 바뀌는 구간에서 앞은 버리고 뒤의 남은 문자열을 new_word로 정의해주고,
new_word에 직전 구간의 알파벳이 있는지 체크한다.
이때, 반복문이 도는 구간을 (단어길이-1)까지 지정해야하는데,
반복문에 해당 인덱스와 다음 인덱스의 글자를 비교하는 조건이 있기 때문이다.
구간이 이렇게 지정되지 않으면 Index error가 발생한다.
'코딩테스트 연습' 카테고리의 다른 글
[python/C++] 가장 큰 정사각형 찾기 / 동적 프로그래밍(DP) (0) | 2023.03.11 |
---|---|
[파이썬] 프로그래머스: 문자열 나누기 (0) | 2023.02.23 |
[파이썬] 백준: 1차원 배열 연습문제 (0) | 2023.01.24 |
[파이썬] 백준: 반복문 연습 (0) | 2023.01.20 |
[파이썬] 백준: #2884 알람시계 #2525 오븐시계 (0) | 2023.01.18 |