본문 바로가기
코딩테스트/문제풀이-1

[선택] 1316 그룹 단어 체커

by apple망고 2024. 1. 30.

정답 코드

let count = Int(readLine()!)!
var sum: Int = count

for _ in 0..<count {
    var array: [String] = [String]()
    let input = readLine()!.map { String($0) }
    
    for character in input {
        if !array.contains(character) {
            array.append(character)
        } else {
            if array.last != character {
                sum -= 1
                break
            }
        }
    }
}

print(sum)

 

코드 설명

  • sum의 최대 개수는 count 만큼입니다.
  • 단어 하나를 map 함수를 사용해서 한글자씩 input배열에 넣어 줍니다.
  • input의 한글자씩 순회하면서
    • [if]array에 글자가 없다면 array에 글자를 넣어주고
    • [else] array에 글자가 있다면
      • [if]array의 마지막 요소가 현재 내 글자와 같은 지 확인하고 다르면 그룹단어가 아니기에
        • 총 개수에서 -1을 해주고 break으로 for문을 종료시킵니다.

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

 

1316번: 그룹 단어 체커

그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때

www.acmicpc.net

 

'코딩테스트 > 문제풀이-1' 카테고리의 다른 글

[선택] 1181 단어정렬  (2) 2024.01.30
[선택] 11720 숫자의 합  (0) 2024.01.29
[선택] 2002 추월  (0) 2024.01.29
[선택] 1620 나는야 포켓몬 마스터 이다솜  (0) 2024.01.29
[선택] 7785 회사에 있는 사람  (2) 2024.01.29
[선택] 2846 오르막길  (0) 2024.01.25
[선택] 2947 나무 조각  (0) 2024.01.25
[선택] 10818 최소, 최대  (0) 2024.01.25