Challenge
Careers
Class
Connect
로그인 후 문제풀이가 가능합니다.
c언어 코드 반례
#define _CRT_SECURE_WARNINGS #include <stdio.h> #include <string.h> int yes(int *i,int *j){ *i=*i+1; *j=*j+1; return 1; } int no(int *i,int *j){ *i=0; *j=*j+1; return 2 ; } int main(){ int M,N,K=0; //M=조작법 번호 개수, N=사용자가 누른 조작 버튼 수, K=번호 개수 scanf("%d %d %d",&M,&N,&K); int secret[M]; //4 (2 1 3 2) for (int i=0;i<M;i++){ scanf("%d",&secret[i]); } int num[N]; //10 (1 3 2 1 2 1 3 2 4 5) for (int i=0;i<N;i++){ scanf("%d",&num[i]); } int a=0; int b=0; int re=0; while (a!=M&&b<N){ //4 10 if(secret[a]...
string 이용한 쉬운 풀이
string의 find 함수를 이용한 풀이입니다. #include <iostream> using namespace std; int main(int argc, char** argv) { string manual; getline(cin, manual); string secret_order; getline(cin, secret_order); string user_input; getline(cin, user_input); int pos = user_input.find(secret_order); if (pos < 0) { cout << "normal"; } else { cout << "secret"; } return 0; }
[21년 재직자 대회 예선] 비밀 메뉴 - 파이썬 풀이
deque를 사용해서 처음부터 끝까지 사용자가 입력한 버튼을 M개씩 비교하는 풀이가 가능합니다. 여기서 N과 K값은 사용하지 않기 때문에 _(언더바)로 받아줘도 됩니다. import sys input = sys.stdin.readline from collections import deque M, N, K = map(int, input().split()) secret = deque(list(map(int, input().split()))) user = deque(list(map(int, input().split()))) queue = deque() while user: queue.append(user.popleft()) if len(queue) > M: queue.popleft() if queue == secret: break print('secret' if secret == queue else 'normal') 한편 문제 ...
JAVA 답공유
import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br.readLine(); String key = br.readLine().replaceAll(" ", ""); String value = br.readLine().replaceAll(" ", ""); System.out.println(value.indexOf(key) > -1 ? "secret" : "normal"); } }
C언어 코드 공유
#include <stdio.h> int main(void) { int M,N,K; scanf("%d %d %d",&M,&N,&K); int arr[M]; int ar; for(int i=0;i<M;i++){ scanf("%d",&ar); if (1<=ar&&ar<=K){ arr[i]=ar; } } int sol[N]; int s; for(int i=0;i<N;i++){ scanf("%d",&s); if(1<=s&&s<=K){ sol[i]=s; } } char *final; int decide=0; for(int i=0;i<N;i++){ if (sol[i]==arr[0]){ for(int j=0;j<M;j++){ if(sol[i+j]==arr[j]) decide++; } if(decide==M) { final="secret"; } else final="normal"; if (final=="secret"){ i=N; } // printf("%d\n",decide); decide=...
비밀메뉴 반례
테스트 케이스 26-3 / 32-3 / 33-3/ 34-3의 경우 통과를 하지 못 하는데 다음 코드에서 뭐가 잘못 됐을까요? 혹시 실패하는 입력 예시도 알려주시면 감사하겠습니다. public class Main { static int[] pattern, btnControl, M_N_K; static final String secret = "secret"; static final String normal = "normal"; // M : 비밀 메뉴 길이, N : 사용자 버튼 입력 횟수, K : 버튼 수 (1 ~ K) public static void main(String[] args) throws IOException{ setData(); System.out.println(checkSecret()); } private static String checkSecret() { int M = M_N_K[0]; int N...
level2 [21년 재직자 대회 예선] 비밀 메뉴
33-3에서 오류가 나는데 반례가 뭘까요? ㅜㅜ #include< iostream > using namespace std; const int MAX= 100; int M[MAX]; int N[MAX]; int main( int argc, char** argv) { int m,n,k,i,j; string s= "normal"; cin>>m>>n>>k; //입력 for(i= 0;i cin>>M[i]; } for(i= 0;i cin>>N[i]; } i= 0; j= 0; while(N[i] and M[j]){ if(M[j]==N[i]){ j++; i++; if(M[j]== 0) { //비교할 게 더 없는 경우 secret메뉴로 판정 s= "secret"; break; } } else{ if(M[ 0]==N[i]){ i++; j= 1; } else{ j= 0; i++; } } } cout< return 0; }
[21년 재직자 대회 예선] 비밀 메뉴 반례
import sys M,N,K = map(int, input().split()) c = list(map(int, input().split())) q = list(map(int, input().split())) t = 0 for i,j in enumerate(q): if j == c[t]: t += 1 else: t = 0 if j == c[t]: t += 1 if t == M: print('secret') break if t != M: print('normal') test case 33-3만 틀리는데 반례를 알 수 있을까요
[21년 재직자 대회 예선] 비밀 메뉴 반례 부탁드립니다.
C++로 작성하였는데요! 테스트케이스 중 4개정도가 오류가나서 오답이라고 뜹니다ㅠ 반례 찾아주실 수 있을까요. #include using namespace std; int main() { int M, N, K; int m[100] = { 0, }; // 비밀키 int n; // 입력키 int key = 0; cin >> M >> N >> K; for (int i = 0; i < M; i++) { // 비밀메뉴 조작법 std::cin >> m[i]; } for (int i = 0; i < N; i++) { // 사용자의 버튼조작 std::cin >> n; if (n == m[key]) { key++; } else { key = 0; } if (key == M) { std::cout << "secret"; return 0; } } std::cout <<...
[21년 재직자 대회 예선] 비밀 메뉴 반례 질문입니다.
풀이 찾다가 import sys input = sys.stdin.readline m,n,k = map(int,input().split()) if m > n : print("normal") exit() secret_key = "".join(list(map(str,input().split()))) user_input = "".join(list(map(str,input().split()))) if secret_key in user_input: print("secret") else: print("normal") 이 코드로 돌려서 100나왔는데 반례가 2 5 5 1 1 4 3 1 4 1 일 경우 secret이 나와야 하는거 아닌가요?