본문 바로가기
알고리즘 백준문제풀기

백준 python 2941번 크로아티아 알파벳/ 4673번 셀프넘버 /1316번: 그룹 단어 체커

by deeplearningkakao 2022. 1. 23.
반응형

백준  2941번 크로아티아 알파벳

입력

첫째 줄에 최대 100글자의 단어가 주어진다. 알파벳 소문자와 '-', '='로만 이루어져 있다.

단어는 크로아티아 알파벳으로 이루어져 있다. 문제 설명의 표에 나와있는 알파벳은 변경된 형태로 입력된다.

출력

입력으로 주어진 단어가 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.

 

Python
n = list(map(str, input())) 

croatia = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']  # 크로아티아 알파벳

 i, cnt = 0, 0 

while True: 
     if ''.join(n[i:i+2]) in croatia: # 두개의 문자로 이루어진 크로아티아 알파벳인 경우
          i += 2
     elif ''.join(n[i:i+3]) in croatia: # 'dz='인 경우
          i += 3
     else: # 크로아티아 알파벳이 아닌 경우
           i += 1 
     cnt += 1 

     if i >= len(n): 
          break

print(cnt)


백준 4673번 셀프넘버

반응형

입력

입력은 없다.

출력

10,000보다 작거나 같은 셀프 넘버를 한 줄에 하나씩 증가하는 순서로 출력한다.

 

Python
arr = [ i for i in range(1,10001)] # 1부터 10000까지 list에 담기 

for i in range(1,10001): 

     number = sum(map(int, str(i))) # i의 각 자리수의 합 

     if i + number <= 10000 and i+number in arr: 
          a = i + number 
          arr.remove(a) 

for i in range(len(arr)):
     print(arr[i])

 

백준 1316번: 그룹 단어 체커

 

입력

첫째 줄에 단어의 개수 N이 들어온다. N은 100보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 단어가 들어온다. 단어는 알파벳 소문자로만 되어있고 중복되지 않으며, 길이는 최대 100이다.

출력

첫째 줄에 그룹 단어의 개수를 출력한다.

Python

n = int(input())
a = [] 
cnt = 0 

for i in range(n): 
     s = list(map(str, input())) 
     flag = False 
     a = [] 
     for j in range(len(s)):
          if s[j] not in a : 
               a.append(s[j]) 
          else :
               if s[j-1] != s[j]: 
                    flag = True 
     if flag == False: 
          cnt += 1

print(cnt)




 

반응형

댓글