[LeetCode] Student Attendance Record I

아르당·2026년 1월 28일

LeetCode

목록 보기
115/136
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

학생의 출석 기록을 나타내는 문자열 s가 주어진다. 각 문자는 해당 학생이 그날 결석했는지, 지각했는지, 출석했는지를 나타낸다. 기록에는 다음 세 문자만 포함된다.

  • 'A': Absent
  • 'L': Late
  • 'P': Present

학생은 다음 두 가지 기준을 모두 충족하는 경우 출석 장려금 지급 대상이 된다.

  • 해당 학생은 총 결석('A') 일수가 2일 미만이었다.
  • 그 학생은 3일 이상 연소으로 지각한 적이 없다.

학생이 출석 장려금 지급 대상이면 true를, 그렇지 않으면 false를 반환해라.

Example

#1
Input: s = "PPALLP"
Output: true
Explanation: 해당 학생은 결석 횟수가 2회 미만이고, 3일 이상 연속으로 지각한 적이 없다.

#2
Input: s = "PPALLL"
Output: false
Explanation: 해당 학생은 지난 3일 동안 3일 연속 지각했으므로, 지급 대상이 아니다.

Constraints

  • 1 <= s.length <= 1000
  • s[i]는 'A', 'L', 'P'이다.

Solved

class Solution {
    public boolean checkRecord(String s) {
        int countA = 0;
        int countL = 0;

        for(char ch : s.toCharArray()){
            if(ch != 'L') countL = 0;
            if(ch == 'L') countL++;
            if(ch == 'A') countA++;
            if(countA == 2 || countL == 3) return false;
        }

        return true;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글