본문 바로가기

개발

빅오에 대한 개념을 일깨워준... 백준

https://www.acmicpc.net/problem/10158

 

10158번: 개미

가로 길이가 w이고 세로 길이가 h인 2차원 격자 공간이 있다. 이 격자는 아래 그림처럼 왼쪽 아래가 (0,0)이고 오른쪽 위가 (w,h)이다. 이 공간 안의 좌표 (p,q)에 개미 한 마리가 놓여있다. 개미는 오

www.acmicpc.net


 

이제야 자바 입력받을때 token 단위로 받아오는 방법을 알것 같다...

구현 문제이지만 빅오 제한때문에 for문을 돌리면 안되고 적절한 규칙을 찾아 접근하는 문제였다.

아직 잘 이해는 안되고 실제 문제가 나온면 이렇게 접근할 수 있을까 싶지만 ...

한번씩 심심할때 머리 순환시켜주기 좋은 문제라고 생각한다.

하하하하...

 

package com.boj;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main
{
	private static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	private static StringTokenizer st;
	public static void main (String[] args) throws IOException {
        st = new StringTokenizer(br.readLine());
        int W = Integer.parseInt(st.nextToken());
        int H = Integer.parseInt(st.nextToken());
        
        st = new StringTokenizer(br.readLine());
        int P = Integer.parseInt(st.nextToken());
        int Q = Integer.parseInt(st.nextToken());
        
        st = new StringTokenizer(br.readLine());
        int T = Integer.parseInt(st.nextToken());

		
        int p = (P + T) % (2 * W);
        int q = (Q + T) % (2 * H);
        if (p > W) p = 2 * W - p;
        if (q > H) q = 2 * H - q;
        System.out.println(p + " " + q);
    }
}