description
1) 아기는 "aya", "ye", "woo", "ma" 네가지 발음만 가능
2) 그래서 최대 한번식 사용해 조합한 발음밖에 하지 못함
3) 문자열 배열이 매개변수로 주어질 때, 아기가 발음 가능한 단어의 수
풀이
0) 문자열이 발음가능한지 아닌지 표시하는 flag 설정 (초기 false)
1) a로 시작하면 aya, y로 시작하면 ye, w로 시작하면 woo, m으로 시작하면 ma만 가능
a) 문자열을 받아, 첫글자를 비교해 4글자 중 하나인지 확인
b) 4글자 중 하나면 문자열 중 몇개를 검사완료했는지 인덱스를 뛰어 넘을 개수 반환
c) 4개 중 아무것도 아니면 0
2) 1에서 반환받은 수(가능한 문자열 길이)를 가지고 비교
a) 반환수 === 남은 문자열 길이 => 가능하므로 flag =true; break;
b) 반환수가 0이면 => 불가능하므로 flag=false; break;
c) 이외의 경우 => 인덱스를 뛰어넘기 위해 반환수만큼 증가; 아직까진 가능하므로 flag=true;
3) 1+2를 문자열 배열의 길이만큼 반복하면서 한 문자열을 끝낼 때마다 flag가 true면 answer += 1;
메소드 정리
1. substring
배열.substring(자르기 시작할 인덱스, 종료 인덱스: 생략가능) => 반환: 시작인덱스(포함)~종료 인덱스 전까지의 문자열
**종료 인덱스가 없는 경우, [시작인덱스~끝까지]를 반환**
// example
const stringEx = 'abcdefghijkl';
console.log(stringEx.substring(0,1)) // 'a'
console.log(stringEx.substring(3,6)) // 'def'
console.log(stringEx.substring(2)) // 'cdefghijkl'
포인트는 시작인덱스는 포함, 종료인덱스 문자는 포함하지 않음.
'Algorithm' 카테고리의 다른 글
[프로그래머스] 안전지대 (0) | 2023.05.10 |
---|---|
[프로그래머스] 평행 (0) | 2023.04.28 |
Codingbat - Java] String-3 - maxBlock (0) | 2021.10.14 |
Codingbat - Java] Logic2 - blackjack (0) | 2021.10.07 |
Codingbat-Java] Warmup2 - arrayCount9 (0) | 2021.09.30 |