diff --git a/programmers/아이템 줍기/solution.java b/programmers/아이템 줍기/solution.java index 75a82d5..3affac3 100644 --- a/programmers/아이템 줍기/solution.java +++ b/programmers/아이템 줍기/solution.java @@ -3,22 +3,22 @@ import java.util.*; class Solution { public int solution(int[][] rectangle, int characterX, int characterY, int itemX, int itemY) { - int sX=characterX*2, sY=characterY*2, eX=itemX*2, eY=itemY*2, cnt = 0; + int sX=(characterX-1)*2, sY=(characterY-1)*2, eX=(itemX-1)*2, eY=(itemY-1)*2, cnt = 0; int[][] d = {{-1,0},{1,0},{0,-1},{0,1}}; - boolean[][] map= new boolean[103][103]; + boolean[][] map= new boolean[100][100]; ArrayList arrayList =new ArrayList<>(); Stack st = new Stack<>(); for(int[] square:rectangle){ - for(int i=square[0]*2;i<=square[2]*2;i++){ - for(int j=square[1]*2;j<=square[3]*2;j++){ + for(int i=(square[0]-1)*2;i<=(square[2]-1)*2;i++){ + for(int j=(square[1]-1)*2;j<=(square[3]-1)*2;j++){ map[i][j]=true; } } } for(int[] square:rectangle){ - for(int i=square[0]*2+1;i= 0 && y+d[f][1] >= 0 && y+d[f][1] < map[0].length && x+d[f][0] < map.length && map[x+d[f][0]][y+d[f][1]]==true) st.add(new Integer[] {x+d[f][0],y+d[f][1]}); cnt++; } arrayList.add(cnt);