Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 해외주식 양도세 신고
- js 자동완성
- katalon xpath
- tomcat log
- 피보나치 예제
- git 연동
- 한국투자증권 해외주식 양도세
- 최대공약수 예제
- Katalon Recorder 사용법
- 피보나치함수 예제
- oracle group by
- katalon 사용법
- bfs 미로탐색 java
- java.sql.SQLSyntaxErrorException
- 해외증권 양도세 한국투자증권
- 홈택스 해외주식 양도세
- 한국투자증권 양도세 신고
- 피보나치함수
- 재귀 예제
- 재귀함수 예제
- katalon 자동화
- recursion example
- 국세청 해외주식 양도세 신고방식
- katalon
- CSTS 폭포수 모델
- katalon 비교
- 주식 양도세 신고방법
- 톰캣 실시간 로그
- 테스트 자동화
- javascript 자동완성
Archives
- Today
- Total
엄지월드
백준 4659 비밀번호 발음하기 본문
문제
설명
while문을 돌면서 요구사항대로 구현했는데, 틀리다고 나오는 부분이 있어서 맞왜틀?을 시전하고 있었다.
틀렸던 부분은 ap와 같이 1개만 모음이 있을 때에 처리를 못해주었는데, 해당 부분을 처리하니 맞았다.
checkVowel이라는 메소드를 별도로 만들어서 자음을 체크해주었고, 현재와 다음 인덱스가 자음이면 +2를 해주었다.
+1만 해주니 3개 연속 자음일 때에 체크가 안되어서 >3 으로 3보다 큰 경우에 if문을 처리하고, 자음일 때 +2를 해주었다.
소스
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
while(true) {
String s = br.readLine();
if("end".equals(s)) {
break;
}
int vowelCnt = 0;
int consonant = 0;
boolean isAcceptable = false;
for (int i = 0; i < s.length()-1; i++) {
char nowChar = s.charAt(i);
char nextChar = s.charAt(i+1);
boolean isNowVowel = checkVowel(nowChar);
boolean isNextVowel = checkVowel(nextChar);
if(isNowVowel && isNextVowel) {
isAcceptable = true;
vowelCnt += 2;
} else if(!isNowVowel && !isNextVowel) {
consonant += 2;
} else {
vowelCnt = 0;
consonant = 0;
if(isNowVowel || isNextVowel) {
isAcceptable = true;
}
}
if(nowChar == nextChar && (nowChar != 'e' && nextChar != 'e') && (nowChar != 'o' && nextChar != 'o')) {
isAcceptable = false;
break;
}
if(vowelCnt > 3 || consonant > 3) {
isAcceptable = false;
break;
}
}
if(s.length() == 1 && checkVowel(s.charAt(0))) {
isAcceptable = true;
}
if(isAcceptable) {
bw.write("<" + s + ">" + " is acceptable.\n");
} else {
bw.write("<" + s + ">" + " is not acceptable.\n");
}
}
bw.flush();
bw.close();
}
private static boolean checkVowel(char c) {
switch (c) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
{
return true;
}
default: {
return false;
}
}
}
}
'알고리즘' 카테고리의 다른 글
백준 4158 CD (0) | 2024.06.25 |
---|---|
백준 15904 UCPC는 무엇의 약자일까? (0) | 2024.05.13 |
백준 5800 성적 통계 (0) | 2024.05.08 |
백준 16435 스네이크버드 (0) | 2024.05.06 |
백준 10826 피보나치 수 4 (0) | 2024.05.01 |
Comments