공부공간

BOJ - 1846 ) 장기 본문

알고리즘/구현,시뮬

BOJ - 1846 ) 장기

개발자가될수있을까? 2020. 7. 29. 00:23

 


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

 

1846번: 장기

N개의 줄에 걸쳐, 게임판에서 각 줄의 몇 번째 칸에 차를 배치했는지를 나타내는 칸의 번호를 순서대로 출력한다. 조건을 만족시키는 배치가 둘 이상이면 아무 것이나 출력한다. 배치가 불가능��

www.acmicpc.net


 

잘 보면 규칙이 나온다..

 


package algorithm;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class 장기 {

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		int n = Integer.parseInt(br.readLine());
		if(n==3) {
			bw.write("-1");
		} else if((n&1)==1){
			bw.write(n-2+"\n");
			for(int i = 1 ; i < n-2 ; i++) bw.write(i+"\n");
			bw.write(n+"\n");
			bw.write(n-1 +"\n");
		} else {
			bw.write( (n>>1) +"\n");
			for(int i = 1 ; i < (n>>1) ; i++) bw.write(i+"\n");
			for(int i = (( n>>1 )+2 ) ; i<=n  ; i++)bw.write(i+"\n");
			bw.write(((n>>1)+1) + "\n");
		}bw.close();
	}

}

아직 안유명해서 자바중 1위!

'알고리즘 > 구현,시뮬' 카테고리의 다른 글

BOJ - 1477 ) 휴게소 세우기  (0) 2020.08.06
BOJ - 17081 ) RPG Extreme  (0) 2020.08.02
BOJ - 18111 ) 마인크래프트  (0) 2020.07.22
BOJ - 2887 ) 행성 터널  (0) 2020.07.07
BOJ - 6497 ) 전력난  (0) 2020.07.07
Comments