코테 연습 with Java - 4

아이모·2022년 10월 31일
0

코테

목록 보기
10/15

swea 1208 flattern

<풀이>

처음 풀었을 때 케이스 1개를 틀렸었는데 이유를 보니 횟수가 1번일 경우는 largestNum과 smallestNum의 변화 없이 결과값이 도출되었던 것이 원인이었다. 그래서 dumpNum을 하나 늘려주었더니 통과하였다.

<코드>

for(int test_case = 1; test_case <= T; test_case++)
		{
			int dumpNum = sc.nextInt();
            dumpNum++;
            ArrayList <Integer> boxs = new ArrayList<>();
            int largestNum = 0;
            int smallestNum = 100;
            for(int i = 0; i < 100; i++){
                int next = sc.nextInt();
                boxs.add(next);
                largestNum = Math.max(largestNum, next);
                smallestNum = Math.min(smallestNum, next);
            }
            for(int i = 0; i < dumpNum; i++){
                if(largestNum - smallestNum <= 1){
                    continue;
                }
                if(boxs.contains(largestNum)){
                    boxs.set(boxs.indexOf(largestNum), boxs.get(boxs.indexOf(largestNum))-1);
                    if(boxs.contains(smallestNum))
                        boxs.set(boxs.indexOf(smallestNum), boxs.get(boxs.indexOf(smallestNum))+1);
                    else{
                        smallestNum ++;
                        boxs.set(boxs.indexOf(smallestNum), boxs.get(boxs.indexOf(smallestNum))+1);
                    }
                }
                else {
                    largestNum--;
                    boxs.set(boxs.indexOf(largestNum), boxs.get(boxs.indexOf(largestNum))-1);
                    if(boxs.contains(smallestNum))
                        boxs.set(boxs.indexOf(smallestNum), boxs.get(boxs.indexOf(smallestNum))+1);
                    else{
                        smallestNum ++;
                        boxs.set(boxs.indexOf(smallestNum), boxs.get(boxs.indexOf(smallestNum))+1);
                    }
                }

             }
            
     
			System.out.println("#"+test_case+" "+ (largestNum-smallestNum));
		}
profile
데이터로 보는 실력

0개의 댓글