틀린 코드
ㅇ아아아앙아ㅏㄱ아거ㅡㅏㅣㄴ어ㅏㄴ걷ㄴㅇㄱ나오라ㅓㄴ러ㅏ ㄴ
이게 왜 틜너아ㅣ러내ㅑ러잘ㄴ아ㅣ러니아러재ㅑㅗ느,어나엃;ㅈㄷ힌ㅇ라너
아오
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
import java.util.Deque;
import java.util.LinkedList;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
Deque<Integer> number = new LinkedList<>();
String[] str;
str = br.readLine().split(" ");
int N = Integer.parseInt(str[0]);
int M = Integer.parseInt(str[1]);
int[] arr = new int[M];
//뽑아내고자하는 숫자 입력받기
str = (br.readLine().split(" "));
for(int i=0; i<M; i++)
arr[i] = Integer.parseInt(str[i]);
System.out.println(N);
System.out.println(M);
//for(int i=0; i<M; i++)
// System.out.println(arr[i]);
for(int i=0; i<N; N++)
number.add(i+1);
//StringTokenizer command;
//연산횟수
int count = 0;
for(int i=0; i<M; i++) {
int mid = N/2;
if(arr[i] > mid) {
while(true) {
if(arr[i] == number.peekFirst())
break;
int last = number.peekLast();
number.removeLast();
number.addFirst(last);
count++;
}
}
else if(arr[i] < mid) {
while(true) {
if(arr[i] == number.peekFirst())
break;
int first = number.peekFirst();
number.removeFirst();
number.addLast(first);
count++;
}
}
}
System.out.println(count);
}
}
맞는 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Deque;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.StringTokenizer;
public class Main {
static int N, M;
static StringBuilder sb = new StringBuilder();
static int count = 0;
static LinkedList<Integer> q = new LinkedList<>();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken());
M = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine());
int[] temp = new int[M];
for(int i = 0 ; i < M ; i++)
temp[i] = Integer.parseInt(st.nextToken());
for(int i = 1 ; i <= N ; i++)
q.add(i);
for(int i = 0 ; i < M ; i++) {
if(check(temp[i])) {
while(temp[i]!=q.get(0)) {
q.addLast(q.pollFirst());
count++;
}
}else {
while(temp[i]!=q.get(0)) {
q.addFirst(q.pollLast());
count++;
}
}
q.poll();
}
System.out.println(count);
}
public static boolean check(int a) {
for(int i = 0 ; i <= q.size()/2 ; i++) {
if(a == q.get(i))
return true;
}
return false;
}
}
'JAVA' 카테고리의 다른 글
BAEKJOON(백준) Queue - 11866번 JAVA / PYTHON CODE (0) | 2023.01.29 |
---|---|
BAEKJOON(백준) Queue - 2164번 JAVA / PYTHON CODE (0) | 2023.01.29 |
BAEKJOON(백준) Queue - 18258번 JAVA / PYTHON CODE (0) | 2023.01.27 |
BAEKJOON(백준) Stack - 1874번 JAVA CODE (0) | 2023.01.26 |
BAEKJOON(백준) 문자열 - 1316번 JAVA CODE (0) | 2023.01.18 |