본문으로 바로가기

LeetCode 551. Student Attendance Record I (Easy)

입력받은 문자열에는 학생의 출석 점수가 적혀있다.

주어진 조건에 따라서 학생이 출석 기록에 다라 보상을 받을 수 있는지 여부를 반환해야 한다.

LeetCode에서 푼 문제 리스트 보기

LeetCode에서 문제 보기

github에서 코드보기

문제 조건

- 학생이 받을 수 있는 출석 점수는 다음 3가지 밖에 없다.

'A' (absent), 'L' (Late), 'P' (Present) 

출석 기록에 둘 이상의 'A' 혹은 두 개 이상 연속으로 'L'이 있을 경우에는 보상을 받을 수 없다.

문제 풀이

주어진 문자열을 순회하여 'A'의 갯수가 2개 이상일 경우에는 바로 False를 반환한다.

'L'의 경우에는 연속으로 3번 이상 나타날 경우에 False를 반환해야 하므로, 'L'이 나타나면 그 다음과 그 다다음에도 "L'이 나오는지 확인하여 나오면 바로 False를 반환해준다.

파이썬 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution:
    def checkRecord(self, s: str-> bool:
        a_count = 0
        for i in range(len(s)):
            ch = s[i]
            if ch == 'A':
                a_count += 1
                if 1 < a_count:
                    return False
            elif ch == 'L':
                if i+1 < len(s) and i+2 < len(s):
                    if s[i+1== 'L' and s[i+2== 'L':
                        return False
        return True
cs

#LeetCode 551. Student Attendance Record I (Easy) python  #LeetCode 551 파이썬 #LeetCode python