SMALL
https://softeer.ai/practice/6269
해당 문제는 어렵게 생각할 필요가 없는 문제다.
조건을 조금 걸어준 나열해 놓은 1,2,3,4 라는 리스트에서 1,2,3 이라는 비밀 순서가 들어있는지만 체크 해주면 끝!
정답 코드
import java.io.*;
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());
int m = Integer.parseInt(st.nextToken());
int n = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
int[] secretManual = new int[m];
int[] userButton = new int[n];
boolean secretFlag = false;
// secret 조작법 입력 받기
st = new StringTokenizer(br.readLine());
for (int i = 0; i < m; i++) {
secretManual[i] = Integer.parseInt(st.nextToken());
if (secretManual[i] > k) return;
}
// 사용자 조작 버튼 입력 받기
st = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) {
userButton[i] = Integer.parseInt(st.nextToken());
if (userButton[i] > k) return;
}
// 사용자의 조작 버튼이 비밀 조작법 보다 클때만
if (n >= m) {
// 사용자의 조작 버튼이 비밀 조작법 검증 할 수 있는 정도 반복
for (int i = 0; i < n - m + 1; i++) {
int cnt = 0;
int idx = i;
for (int j = 0; j < m; j++) {
if (userButton[idx] == secretManual[j]) cnt++;
idx++;
}
if (cnt == m) {
secretFlag = true;
break;
}
}
}
if (secretFlag) bw.write("secret\n");
else bw.write("normal\n");
bw.flush();
bw.close();
}
}
항상 이런 문제 만나면 하~ 연속된 리스트 겁나 일일이 해야 해서 까다로운데 했지만 쉽게 생각하라는 동희 말에 순식간에 해결
레벨2 한문제 남았다,, 아자아자 할 수 있다.
'알고리즘 단련장 > 소프티어' 카테고리의 다른 글
[소프티어] 함께하는 효도 레벨3 자바 풀이 (2) | 2024.11.02 |
---|---|
[소프티어] 회의실 예약 레벨2 자바 풀이 (21년 재직자 대회 예선) (0) | 2024.10.31 |
[소프티어] GBC 레벨2 자바 풀이 (0) | 2024.10.30 |
[소프티어] 지도 자동 구축 레벨2 자바 풀이 (2) | 2024.10.30 |
[소프티어] 장애물 인식 프로그램 레벨2 자바 풀이 (DFS, BFS) (0) | 2024.10.30 |