๊ด€๋ฆฌ ๋ฉ”๋‰ด

โœ๐Ÿป๊ธฐ๋กํ•˜๋Š” ๋ธ”๋กœ๊ทธ

ํ•ด์‹œ - Lv1.์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜ ๋ณธ๋ฌธ

์•Œ๊ณ ๋ฆฌ์ฆ˜

ํ•ด์‹œ - Lv1.์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜

์ฉ์‹œํ‚ด 2020. 9. 27. 20:47
728x90

HashTable์ด๋ž€

F(key) → HashCode → Index → Value

  • ๊ฒ€์ƒ‰ํ•˜๊ณ ์ž ํ•˜๋Š” ํ‚ค๊ฐ’์„ ํ•ด์‰ฌ ํ•จ์ˆ˜์— ์ž…๋ ฅ ํ›„ ๋ฐ˜ํ™˜๋ฐ›์€ ํ•ด์‰ฌ ์ฝ”๋“œ๋ฅผ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋กœ ํ™˜์‚ฐํ•˜์—ฌ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹์˜ ์ž๋ฃŒ๊ตฌ์กฐ
  • ํ•ด์‰ฌ ํ•จ์ˆ˜๋Š” ํŠน์ •ํ•œ ๊ทœ์น™์„ ์ด์šฉํ•ด์„œ ์ž…๋ ฅ๋ฐ›์€ ํ‚ค๊ฐ’์ด ์–ผ๋งˆ๋‚˜ ํฐ์ง€ ์ƒ๊ด€์—†์ง€ ๋™์ผํ•œ ํ•ด์‰ฌ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์–ด์คŒ
  • ๋ฐ์ดํ„ฐ ์–‘์ด ๋งŽ์„๋–„ ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ๋น„๊ตํ•˜๊ธฐ ํž˜๋“ค๊ณ , ๊ณต๋ฐฑ ํ•˜๋‚˜๋งŒ ํ‹€๋ ค๋„ ์ „ํ˜€ ๋‹ค๋ฅธ ํ•ด์‰ฌ ์ฝ”๋“œ๊ฐ’์„ ๋งŒ๋“ค์–ด๋ƒ„
  • ํ•ด์‰ฌ ํ•จ์ˆ˜๋Š” ๋น ๋ฅด๋‹ค๋Š” ์žฅ์ ์„ ๊ฐ€์ง
//[mislav, stanko, mislav, ana]

for(String pmem : participant){
            comMap.put(pmem,"fail");
}

       -> ๋น ๋ฅธ ์ด์œ  : ๋ฐฐ์—ด ๊ณต๊ฐ„์„ ๊ณ ์ •๋œ ํฌ๊ธฐ๋งŒํผ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋†“๊ณ  ํ•ด์‰ฌ ์ฝ”๋“œ๋ฅผ ๋ฐฐ์—ด์˜ ๊ฐœ์ˆ˜๋กœ ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์„ ํ•ด์„œ ๋‚˜๋ˆ  ๋‹ด๋Š”๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ํ•ด์‰ฌ ์ฝ”๋“œ๋กœ ๋ฐ”๋กœ ๋ฐฐ์—ด์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•จ

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Level1 ํ•ด์‹œ - ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜

Map<String,Integer> comMap = new HashMap<String, Integer>();

        
        for(String pmem : participant){

            if(comMap.containsKey(pmem)){
                comMap.put(pmem,comMap.get(pmem)+1);

            }else{
                comMap.put(pmem,1);

            }
        }

		//์ฐธ๊ฐ€ํ•œ ์„ ์ˆ˜ ๋ช…๋‹จ ์ค‘ ์™„์ฃผ์ž๋“ค -1 ํ•˜๋ฏ€๋กœ ์ฐธ๊ฐ€ํ•œ ์„ ์ˆ˜ = ์™„์ฃผ์ž = 0
        for(String cmem : completion){
                comMap.replace(cmem,comMap.get(cmem)-1);
        }

        for(String pmem : participant){
            if(comMap.get(pmem) != 0){
                resultMem = pmem;
            }
        }
        
        return resultMem;
//[mislav, stanko, mislav, ana]

for(String pmem : participant){
            comMap.put(pmem,"fail");
}

์ฒ˜์Œ map์— ์œ„์˜ ๋ฐฐ์—ด๊ฐ’์„ ํ‚ค-๋ฐธ๋ฅ˜ ์Œ์œผ๋กœ ๋‹ด์•„ ๋ฌธ์ œ๋ฅผ ํ’€๋ คํ–ˆ๋‹ค. ๋งต์— ๋‹ด๊ธด ๊ฒฐ๊ณผ๋Š” key -value ์Œ์ด 4๊ฐœ๊ฐ€ ์ƒ๊ธธ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์—ˆ๋‹ค. map ์€ ํ‚ค์— ๋งค์นญ ๋˜๋Š” ๊ฐ’์„ ๋‹ด์œผ๋ฏ€๋กœ ์‹ค์ œ๋กœ๋Š” 3๊ฐœ๊ฐ€ ๋‹ด๊ธฐ๊ฒŒ ๋œ๋‹ค.

 

Hasmap.constraintsKey("key") 

Hasmap.constraintsValue("value")

ํ•ด๋‹น key๋‚˜ value๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ true , false๋กœ ๋ฆฌํ„ดํ•œ๋‹ค.

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•