문제
풀이
(1) 문제 분석하기
- 단 하나의 요소만 다른 2개의 배열을 비교하기 위해 두 배열 모두 정렬 → Arrays.sort()
- 완주자 배열을 기준으로 반복문을 돌면서 각각 i번째의 요소를 비교하고 일치하지 않으면 반환
→ 이때 문자열 비교는 equals() - 반환되는 값 없이 마지막까지 돌았다면 참가자 배열의 마지막 요소를 반환
(2) 슈도코드 작성하기
정답을 담을 answer 변수 선언
참가자 배열 오름차순 정렬
완주자 배열 오름차순 정렬
for(완주자 배열의 길이만큼) {
if(참가자 배열의 i번째와 완주자 배열의 i번째가 다르면) {
answer 변수에 참가자 배열 i번째 요소 넣기
break;
}else if(i와 참가자 배열의 길이 -1 이 같다면) {
answer 변수에 참가자 배열의 마지막 요소 넣기
}
}
정답 변수 answer 반환
(3) 코드 구현하기
package algorithm.test04;
import java.util.Arrays;
public class Solution {
// 각 참가자와 완주자 배열을 정렬하고
// for문을 돌면서 각각 i번째의 이름을 비교하고
// 일치하지 않으면 반환
public static String solution(String[] participant, String[] completion) {
String answer = "";
// 배열 정렬
Arrays.sort(participant);
Arrays.sort(completion);
// 문자열 비교는 equals() 사용
for (int i = 0; i < completion.length; i++) {
if (!participant[i].equals(completion[i])) {
answer = participant[i];
break;
}else if (completion.length-1 == i) {
answer = participant[i+1];
}
}
return answer;
}
public static void main(String[] args) {
String[] participant = {"mislav", "stanko", "mislav", "ana"};
String[] completion = {"stanko", "ana", "mislav"};
System.out.println(solution(participant, completion));
}
}
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'📊 Algorithm&SQL' 카테고리의 다른 글
[Java/프로그래머스] 자릿수 더하기 (0) | 2022.11.19 |
---|---|
[Java/프로그래머스] 이상한 문자 만들기 (0) | 2022.11.19 |
[Java/프로그래머스] 수박수박수박수박수박수? (0) | 2022.11.19 |
[Java/프로그래머스] 나누어 떨어지는 숫자 배열 (0) | 2022.11.19 |
[Java/프로그래머스] 2016년 (0) | 2022.11.19 |