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
- java 백준 1차원 배열
- 백준 java
- 리눅스
- JavaScript
- 자바
- 스프링 빈
- 자바스크립트 코딩의 기술
- 리눅스마스터 1급 정리
- 리눅스마스터1급
- 카카오
- Memoir
- 반복문
- 월간코드챌린지
- map
- 코딩테스트
- 개발자 회고록
- 코테
- toCharArray
- Kotlin
- 리눅스마스터 3과목
- GoingBus
- 프로그래머스
- 백준 javascript
- 고잉버스
- 문자열
- 명령어
- Linux
- 스프링 컨테이너
- 연습문제
- Java
Archives
- Today
- Total
hoon's bLog
Java 프로그래머스 문자열 내 p와 y의 개수 자바 본문
반응형
문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/12916
[문제 설명]
대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True,
다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다.
단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.
예를 들어 s가 "pPoooyY"면 true를 return 하고 "Pyy"라면 false를 return 합니다.
[제한 조건]
- 문자열 s의 길이 : 50 이하의 자연수
- 문자열 s는 알파벳으로만 이루어져 있습니다.
[입출력 예]
s | answer |
"pPoooyY" | true |
"Pyy" | false |
입출력 예 #1
'p'의 개수 2개, 'y'의 개수 2개로 같으므로 true를 return 합니다.
입출력 예 #2
'p'의 개수 1개, 'y'의 개수 2개로 다르므로 false를 return 합니다.
[나의 풀이]
class Solution {
boolean solution(String s) {
boolean answer = true;
char[] ch = s.toLowerCase().toCharArray();
int pCnt = 0, yCnt = 0;
for (int i = 0; i < ch.length; i++) {
if (String.valueOf(ch[i]).equals("p"))
pCnt++;
else if (String.valueOf(ch[i]).equals("y"))
yCnt++;
else continue;
}
if(pCnt == yCnt)
answer = true;
else
answer = false;
return answer;
}
}
풀다 보니 코딩 테스트 문자열 관련 문제에서 하나의 String을 toCharArray()를 이용해서,
문자 배열로 이용하여 연산하는 문제들이 많으니, 잊지 말고 기억하자!
[다른 사람들의 풀이-1]
class Solution {
boolean solution(String s) {
s = s.toUpperCase();
//입력값 s를 받아 대문자로 변환하여
//chars()로 char 형변환 후, P와 Y개수가 여부에 따라 true/false return
return s.chars().filter( e -> 'P'== e).count() == s.chars().filter( e -> 'Y'== e).count();
}
}
[다른 사람들의 풀이-2]
class Solution {
boolean solution(String s) {
s = s.toLowerCase();
int count = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == 'p')
count++;
else if (s.charAt(i) == 'y')
count--;
}
if (count == 0)
return true;
else
return false;
}
}
[정리]
개인 피셜 난이도 : ★☆☆☆☆
오랜만에 글을 올렸다.
코딩은 사실 미리 했지만, 다시 리뷰하면서 돌아보는 것 자체가,
생각보다 귀찮은 일인지 몰랐다...(추석 연휴도 한몫한 듯)
3년 차임에도, 아직도 개발자 마인드가 덜 박혀있는 것 같다...
이직도 해야 하는 이 시점에서 점점 핑곗거리만 많아지는 듯하다.
천천히 쉬운 문제부터 다잡고 초심 찾자!
끝.
728x90
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
Java 프로그래머스 자연수 뒤집어 배열로 만들기 자바 (2) | 2023.02.06 |
---|---|
[Java] 프로그래머스 문자열 내림차순으로 배치하기 자바 (4) | 2023.02.01 |
Java 프로그래머스 문자열 내 마음대로 정렬하기 자바 (0) | 2022.08.26 |
[Java] 프로그래머스 두 정수 사이의 합 자바 (0) | 2022.08.11 |
Java 프로그래머스 나누어 떨어지는 숫자 배열 자바 (0) | 2022.08.10 |