본문 바로가기
python-algorithm

백준 25183 인생은 한 방

by 무적김두칠 2022. 9. 27.

https://www.acmicpc.net/problem/25183

 

25183번: 인생은 한 방

문자열 $S$의 부분 문자열이란, 문자열의 연속된 일부를 의미한다. 

www.acmicpc.net

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def check(s1,s2):
    if abs(ord(s1) - ord(s2))==1:
        return True
    else:
        return False
def sol(n,s):
    cnt=1
    for i in range(1,n):
        if cnt==5:
            return True
        if check(s[i],s[i-1]):
            cnt += 1
        else :
            cnt = 1
    if cnt == 5:
        return True
    else :
        return False
n=int(input())
s=input()
if sol(n,s) :
    print("YES")
else :
    print("NO")
cs

인접한 문자열이 이웃 한지 확인하고 5개가 연속으로 이웃하면 True , 그렇지 않으면 False인 문제입니다.

이웃한지 아닌지 확인하는 함수는 check() 함수로 구현했으며
ord 함수를 이용해서 문자를 숫자로 바꿔서 계산 가능하게 합니다

sol() 함수는 특별한점은 중간에 이웃한 문자열이 5면 바로 True를 return하게 했으나
LIne 15 - 16이 없으면 가장 마지막문자에 이웃한 문자가 5가 되는 경우에는 False를 return하게 됩니다
이 부분만 유의하면 되겠습니다 

반응형

'python-algorithm' 카테고리의 다른 글

백준 baekjoon 2846 오르막길  (0) 2022.09.29
백준 11005 진법 변환 2  (0) 2022.09.28
백준 25558 내비게이션  (0) 2022.09.26
백준 25576 찾았다 악질  (0) 2022.09.24
백준 25495 에어팟  (0) 2022.09.22

댓글