-
[Java] BOJ 1205 등수 구하기개발자 취업/코딩테스트 준비 2023. 6. 8. 16:19반응형
테스트 케이스
10 1 10 1 1 1 1 1 1 1 1 1 1 -> -1 10 1 11 1 1 1 1 1 1 1 1 1 1 -> 1 3 90 10 100 100 90 -> 3 3 80 10 100 100 90 3 80 10 100 100 90 -> 4 0 1 10 -> 1
정답 코드
- 엣지케이스가 많은 문제
- 간단하게 생각하면 문제가 더 쉽다
import java.io.*; import java.util.*; public class Main { static BufferedReader br; static BufferedWriter bw; static StringTokenizer st; static int N, P; static long S; static List<Long> list; public static void main(String[] args) throws IOException { br = new BufferedReader(new InputStreamReader(System.in)); bw = new BufferedWriter(new OutputStreamWriter(System.out)); st = new StringTokenizer(br.readLine(), " "); N = Integer.parseInt(st.nextToken()); S = Long.parseLong(st.nextToken()); P = Integer.parseInt(st.nextToken()); if (N == 0) { System.out.println(1); } else { list = new ArrayList<>(); st = new StringTokenizer(br.readLine(), " "); for (int i = 0; i < N; i++) { list.add(Long.parseLong(st.nextToken())); } int ans = -1; for (int i = 0; i < list.size(); i++) { long now = list.get(i); if (now < S) { list.add(i, S); ans = i; break; } } if (ans != -1) { int pos = list.indexOf(S) + 1; System.out.println(pos); } else { if (N < P) { if (list.get(list.size() - 1) == S) { System.out.println(list.indexOf(S) + 1); } else if (list.get(list.size() - 1) != S) { System.out.println(list.size() + 1); } } else { System.out.println(-1); } } } } }
'개발자 취업 > 코딩테스트 준비' 카테고리의 다른 글
[JAVA] BOJ 1063 킹 (0) 2023.06.10 [Java] BOJ 11652 카드 (0) 2023.06.09 [Java] BOJ 16198 에너지 모으기 (0) 2023.06.07 [Java] BOJ 1476 날짜 계산 (0) 2023.06.07 [Java] BOJ 10610 30 (0) 2023.06.06