-
[java] 백준 알고리즘 1158번 조세퍼스 문제 풀이알고리즘/백준 알고리즘 2018. 7. 27. 14:26
풀이 방법은 백준 알고리즘 11866번 문제와 같다.
풀이 방법 보러가기 : Click
내 풀이 방법은 input 값이 올라갈수록 시간이 오래 걸리는 알고리즘이다.(그다지 좋은 알고리즘을 만들어내지 못했다.)
여기 올린 풀이소스는 나 혼자 힘으로 풀어냈던 코드를 올린 것이고,
더 효율적인 알고리즘은 나머지 연산자(%)를 활용해 푼 알고리즘이 메모리면에서나 시간면에서나 더 좋다.
* 풀이 소스
12345678910111213141516171819202122232425262728293031323334353637383940414243public class Baekjoon1158 {static StringTokenizer st;public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));StringBuilder sb = new StringBuilder();st = new StringTokenizer(br.readLine());int totalPeople = Integer.parseInt(st.nextToken());int removeOrder = Integer.parseInt(st.nextToken());Queue<Integer> josephus = new LinkedList<>();for(int i=1; i<=totalPeople; i++) {josephus.add(i);}int calCount = 0;int outputOrder = 0;sb.append("<");while(outputOrder != totalPeople) {int pollNum = josephus.poll();calCount++;if(calCount == removeOrder) {sb.append(pollNum+", ");outputOrder++;calCount = 0;}else {josephus.add(pollNum);}}sb.delete(sb.length()-2, sb.length());sb.append(">");bw.write(sb.toString());bw.flush();}}cs '알고리즘 > 백준 알고리즘' 카테고리의 다른 글
[java] 백준 알고리즘 10866번 덱 풀이 (0) 2018.08.06 [java] 백준 알고리즘 11866번 조세퍼스 문제 0 풀이 (0) 2018.07.27 [java] 백준 알고리즘 10845번 큐 풀이 (0) 2018.07.25 [java] 백준 알고리즘 1094번 막대기 풀이 (0) 2018.07.24 [java] 백준 알고리즘 1520번 내리막 길 풀이 (0) 2018.07.23