티스토리 뷰
반응형
문제
문제 출처
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 합니다.
풀이
1. 문자열의 각 원소가 p 혹은 y인지 확인
2. p와 y의 개수 비교
class Solution {
boolean solution(String s) {
int p=0, y=0;
//문자열 내 p와 y의 개수를 계산
for (String ch: s.split("")) {
//대소문자 구분 하지 않음
if (ch.equalsIgnoreCase("p"))
p++;
else if (ch.equalsIgnoreCase("y"))
y++;
}
//p의 개수와 y의 개수가 동일한 경우 true return
//p의 개수와 y의 개수가 다른 경우 false return
return p==y;
}
}
다른 사람의 풀이
람다식을 이용하여 간단하게 해결할 수 있다.
우선 toUpperCase()를 이용해 모든 문자를 대문자로 바꾼다. (대소문자 구분을 하지 않기 때문에)
chars()는 CharSequence 인터페이스로부터 파생된 String 클래스의 메소드로 IntStream을 반환한다.
filter()를 이용해서 'P', 'Y'인 element들만 반환하여 개수를 세고 비교한다.
class Solution {
boolean solution(String s) {
s = s.toUpperCase();
return s.chars().filter( e -> 'P'== e).count() == s.chars().filter( e -> 'Y'== e).count();
}
}
반응형
'Develop > Algorithm' 카테고리의 다른 글
[프로그래머스/Java] 연습문제 - 자릿수 더하기 (0) | 2021.01.20 |
---|---|
[프로그래머스/Java] 연습문제 - 시저 암호 (0) | 2021.01.20 |
[프로그래머스/Java] 연습문제 - 약수의 합 (0) | 2021.01.16 |
[프로그래머스/Java] 연습문제 - 짝수와 홀수 (0) | 2021.01.16 |
[프로그래머스/Java] 연습문제 - 문자열 내 마음대로 정렬하기 (0) | 2021.01.16 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 변수
- 백준
- 우선순위큐
- Naver AI Burning Day
- livedata
- 힙
- MutableLiveData
- Android
- 후기
- viewmodel
- hilt
- 알고리즘
- 프로그래머스
- 자바
- 뷰모델
- heap
- architectural pattern
- 아키텍처 패턴
- java
- programmers
- gradle
- Kotlin
- error
- 코틀린
- 안드로이드
- SCPC2021
- BAEKJOON ONLINE JUDGE
- androidx.core
- Algorithm
- 라이브 데이터
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함