급할수록도라에몽
GoodmorningSun
급할수록도라에몽
전체 방문자
오늘
어제
  • 🌏Hello World (73)
    • 👨🏻‍💻Computer Science (28)
      • 🙂Java (6)
      • 😊Spring (0)
      • 💻Algorithm (22)
      • 😉JavaScript (0)
      • 😀CSS (0)
      • 😌HTML (0)
    • 📄TIL (3)
    • 📈오늘의 경제 (17)
    • 🌎MyEnglish (18)
      • 😎Lexicon (18)
    • 💻AI (1)
      • 👨🏻‍💻chatGPT (1)
    • ✈️Prague(프라하) (5)
    • 👨🏻‍💻Apple (1)
    • WorldQuant (0)

블로그 메뉴

  • 🔑Github
  • 🔑Tistory

인기 글

태그

  • 경제
  • Prague
  • SVB
  • eft
  • 딥시크
  • ptp
  • English
  • 프라하
  • 혼자공부하는자바
  • 미국채권
  • 피보나치 되돌림
  • ai
  • Cardiovascular
  • 생활코딩
  • PLTR
  • Java
  • 영어
  • Til
  • INTC
  • 프로그래머스
  • 실리콘밸리 은행
  • 체코
  • FOMC
  • 알고리즘
  • metabolism
  • 인플레이션 감축법
  • ChatGPT
  • TMF
  • cardio
  • 팔란티어

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
급할수록도라에몽

GoodmorningSun

[프로그래머스] 완주하지 못한 선수(Java) 문제풀이
👨🏻‍💻Computer Science/💻Algorithm

[프로그래머스] 완주하지 못한 선수(Java) 문제풀이

2022. 12. 31. 17:21
728x90

완주하지 못한 선수(Java)

💡문제 설명

수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.

마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.

💡제한사항

  • 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.
  • completion의 길이는 participant의 길이보다 1 작습니다.
  • 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.
  • 참가자 중에는 동명이인이 있을 수 있습니다.

🔑입출력 예

participant completion return
["leo", "kiki", "eden"] ["eden", "kiki"] "leo"
["marina", "josipa", "nikola", "vinko", "filipa"] ["josipa", "filipa", "marina", "nikola"] "vinko"
["mislav", "stanko", "mislav", "ana"] ["stanko", "ana", "mislav"] "mislav"

🔑입출력 예 설명

예제 #1"leo"는 참여자 명단에는 있지만, 완주자 명단에는 없기 때문에 완주하지 못했습니다.

예제 #2"vinko"는 참여자 명단에는 있지만, 완주자 명단에는 없기 때문에 완주하지 못했습니다.

예제 #3"mislav"는 참여자 명단에는 두 명이 있지만, 완주자 명단에는 한 명밖에 없기 때문에 한명은 완주하지 못했습니다.


import java.util.Arrays;

class Solution {
   public String solution(String[] participant, String[] completion) {

        Arrays.sort(participant);//Arrays.sort로 배열의 순서를 같게 하기
        Arrays.sort(completion);

        for (int i = 0; i < completion.length; i++) {//for문에서 participant와 completion을 equals로 비교한 다음에 같다면 continue 다르다면 그 다른 값을 리턴!
            if (!completion[i].equals(participant[i])) {
                return participant[i];
            }
        }
        return participant[completion.length];
    }
}

💡 다른 사람 풀이

import java.util.Map;
import java.util.HashMap;
class Solution {
    public String solution(String[] participant, String[] completion) {
        String answer = "";

        Map<String, Integer> map = new HashMap<String, Integer>();
        for (String name : participant) {
        	map.put(name, map.getOrDefault(name, 0) + 1);
        }
        for (String name : completion) {
        	map.put(name, map.get(name) - 1);
        }

        for (String key : map.keySet()) {
            if (map.get(key) != 0) {
            	return key;
            }
        }
        return answer;
    }
}

HashMap을 사용한 다른사람 풀이 메모

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

저작자표시 (새창열림)

'👨🏻‍💻Computer Science > 💻Algorithm' 카테고리의 다른 글

[프로그래머스] 자릿수 더하기(Java) 문제풀이  (0) 2023.01.04
[프로그래머스] 이상한 문자 만들기 (Java) 문제풀이  (0) 2023.01.03
[프로그래머스] 수박수박수박수박수박수?(Java) 문제 풀이  (1) 2022.12.30
[프로그래머스] 서울에서 김서방 찾기(Java) 문제 풀이  (0) 2022.12.29
[프로그래머스] 문자열 다루기 기본 (Java) 문제 풀이  (0) 2022.12.28
    '👨🏻‍💻Computer Science/💻Algorithm' 카테고리의 다른 글
    • [프로그래머스] 자릿수 더하기(Java) 문제풀이
    • [프로그래머스] 이상한 문자 만들기 (Java) 문제풀이
    • [프로그래머스] 수박수박수박수박수박수?(Java) 문제 풀이
    • [프로그래머스] 서울에서 김서방 찾기(Java) 문제 풀이
    급할수록도라에몽
    급할수록도라에몽
    안녕하세요, 반갑습니다:D

    티스토리툴바