Coding Test

[Programmers] ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜

ITs Min 2024. 4. 25.

๐Ÿ” ๋ฌธ์ œ

๋”๋ณด๊ธฐ

๋ฌธ์ œ ์„ค๋ช…
์ˆ˜๋งŽ์€ ๋งˆ๋ผํ†ค ์„ ์ˆ˜๋“ค์ด ๋งˆ๋ผํ†ค์— ์ฐธ์—ฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋‹จ ํ•œ ๋ช…์˜ ์„ ์ˆ˜๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ชจ๋“  ์„ ์ˆ˜๊ฐ€ ๋งˆ๋ผํ†ค์„ ์™„์ฃผํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋งˆ๋ผํ†ค์— ์ฐธ์—ฌํ•œ ์„ ์ˆ˜๋“ค์˜ ์ด๋ฆ„์ด ๋‹ด๊ธด ๋ฐฐ์—ด 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.HashMap;

public class Maraton {
  public String solution(String[] participant, String[] completion) {
    String answer = "";

    HashMap<String, Integer> hm = new HashMap<String, Integer>();

    for (String player:participant){
      hm.put(player,hm.getOrDefault(player, 0) + 1);
    }
    for (String player:completion){
      hm.put(player,hm.getOrDefault(player, 0) - 1);
    }
    for (String key:hm.keySet()){
      if(hm.get(key)!=0){
        answer = key;
        break;
      }
    }
    return answer;
  }
}

๐Ÿ’ก ์ฃผ์š” ๋ฉ”์„œ๋“œ ๋ฐ ํด๋ž˜์Šค

hm.put(player,hm.getOrDefault(player, 0) + 1) : getOrDefault๋ฅผ ํ™œ์šฉํ•ด ํ‚ค๊ฐ’์ธ player์˜ ์ด๋ฆ„์ด ์ค‘๋ณต๋œ๋‹ค๋ฉด value์— +1์„ ํ•˜๊ฒŒ ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด completion์— ์žˆ๋Š” player์™€ ๋น„๊ตํ•ด ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ–ˆ์„ ๋•Œ ์ค‘๋ณต๋œ ์ด๋ฆ„์„ ๊ฐ€์ง„ ์ธ์› ๋งŒํผ ๊ฐ์†Œ ์—ฐ์‚ฐ์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฆ„์ด ์ค‘๋ณต๋˜๋”๋ผ๋„ ๊ตฌ๋ถ„์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.


 

'Coding Test' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Programmers] ํฐ์ผ“๋ชฌ  (0) 2024.04.25
[codeup] ํ–‰๋ณต  (0) 2024.04.24
[codeup] ๊ด„ํ˜ธ ๊ฐœ์ˆ˜ ์„ธ๊ธฐ  (0) 2024.04.24
[Programmers] ์‚ผ์ด์‚ฌ  (1) 2023.12.05
[Programmers] ๋ถ„์ˆ˜์˜ ๋ง์…ˆ  (1) 2023.12.05

๋Œ“๊ธ€

TOP

๋Šฆ์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•  ๋• ๋„ˆ๋ฌด ๋Šฆ์€ ๊ฑฐ๋‹ค.