Dev.baelanche

[백준 10157] 자리배정 본문

Data Structure & Algorithm/PS - JAVA

[백준 10157] 자리배정

baelanche 2019. 7. 23. 21:07
반응형

 

달팽이배열로 푼 사람들이 많다는데 그게 뭔진 모르겠고 난 그냥 인덱스 계산해서 풀었다.

배열과 좌석 배치 좌표의 세로방향이 반대이기 때문에 유의하자.

 

public class Main {
    
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        
        st = new StringTokenizer(br.readLine());
        int c = Integer.parseInt(st.nextToken());
        int r = Integer.parseInt(st.nextToken());
        
        int k = Integer.parseInt(br.readLine());
        
        int a[][] = new int[r][c];
        
        int left = 0;
        int right = 0;
        int top = 0;
        int bottom = 0;
        int seq = 0;
        while(true) {
            for(int i=r-1-bottom; i>=0+top; i--)
                a[i][left] = ++seq;
            left++;
            if(seq == r*c) break;
            
            for(int i=left; i<c-right; i++)
                a[top][i] = ++seq;
            top++;
            if(seq == r*c) break;
            
            for(int i=top; i<r-bottom; i++)
                a[i][c-1-right] = ++seq;
            right++;
            if(seq == r*c) break;
            
            for(int i=c-1-right; i>=0+left; i--)
                a[r-1-bottom][i] = ++seq;
            bottom++;
            if(seq == r*c) break;
        }
        
        if(r*c < k) System.out.println(0);
        else {
            for(int i=0; i<r; i++)
                for(int j=0; j<c; j++)
                    if(a[i][j] == k)
                        System.out.println((j+1) + " " + (r-i));
        }
    }
}
반응형

'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글

[백준 10825] 국영수  (0) 2019.07.23
[백준 10814] 나이순 정렬  (0) 2019.07.23
[백준 11586] 지영 공주님의 마법 거울  (0) 2019.07.23
[백준 11580] Footprint  (0) 2019.07.23
[백준 11578] 팀원 모집  (0) 2019.07.23
Comments