Tiny Bunny
본문 바로가기
Java/프로그래머스

프로그래머스 Java - [PCCE 기출문제] 8번 / 창고 정리

by 내이름효주 2024. 5. 23.

  • 문제 해석
    • 같은 물건끼리 최대한 겹쳐 쌓는 방식(겹쳐질 수 있는 물건의 개수는 제한이 없음)
    • 창고에 들어있는 물건의 이름과 개수는 리스트 형태
      storage = ["pencil", "pencil", "pencil", "book"]
      num = [2, 4, 3, 1]
      
            ↓
      
      clean_storage = ["pencil", "book"], clean_num = [9, 1]
       ➡ 정리된 창고에서 개수가 가장 많은 물건의 이름을 return
  • 문제 풀이 생각
    • storage 배열을 반복문으로 돌려서 해당 값이 clean_storage 에 없으면
      storage 값을 clean_storage 배열에 추가하고
      clean_num[i]에 num[i]값을 추가
    • 해당 값이 clean_storage 배열에 있으면 
      clean_storage 배열에서 해당 값의 위치를 찾아
      찾은위치를 clean_num[] 배열에서 찾아서 해당 위치에 num[i]값을 추가
  • 문제 풀이
    int num_item = 0;
    
    int clean_idx = -1;
    
    clean_storage[0] = Integer.toString(num[0]);
    // clean_storage[0] = 2 -> string
    
    clean_num[0] = num[i];
    // clean_num[0] = 2 -> int
    
    num_item += 1;
    // num_item = 1;
    // clean_storage = ['2', null, null, null]
    // clean_num = [2,0,0,0]
    
    -------------------------------------------------------------------------------------------------
    
    if (storage[1].equals(clean_storage[0]))
    -> storage[1] = pencil, clean_storage[0] = 2
     
    •  storage[1] 는 물건명이고
      clean_storage[0] = 2 는 갯수에 대한 값이다
      ➡ 전부터 뭔가 2를 왜 string으로 받는가 했는데 역시 여기가 틀렸다!!!!