728x90
1. 코드를 쓴 상황
2.내 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
br.close();
int N = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
List<Integer> inputList = new ArrayList<>();
for(int i=1; i<N+1; i++) {inputList.add(i);}
N = K; //변수 N을 inputList의 인덱스로 사용
bw.write("<");
while(true) {
N--; //인덱스는 0번에서 시작하기 때문에 -1
bw.write(String.valueOf(inputList.get(N)));
inputList.remove(N);
if(inputList.size() < 1) break; //", " 처리 및 오류 잡기
else bw.write(", ");
N += K; //K값은 고정, N을 동적 변수로
if(N > inputList.size()) N %= inputList.size();
//N의 값이 list의 사이즈보다 커질 때 사이즈로 나눈 나머지값으로 인덱스 설정
if(N == 0) N = inputList.size();
//N이 0일 때는 나머지 값없이 딱 떨어지기 때문에 가장 마지막 요소 선택
}
bw.write(">");
bw.flush();
bw.close();
}
}
3. 남의 코드에서 본받을 점
중간에 조건 주다가 계속 오류가 나서 반례 볼려고 다른 사람들이 제출한 코드를 봤는데 다들 Queue(큐)를 사용해서 풀었더라... 알고리즘 분류 "구현"으로 문제 찾아서 푼건데 문제 아래 보니 큐로 되어있음...;; 다음에는 큐로 풀어봐야지... 일단 java collection 공부 좀 다시 해야겠다.. |