인프런 커뮤니티 질문&답변
가위바위보 문제에서 각각의 정수형 배열에 숫자 입력할때 에러 질문입니다.
작성
·
333
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
안녕하세요.
가위바위보 문제를 풀다가 A,B 인원의 가위바위보 정보를 입력받는 부분을 어디에 두냐에 따라 컴파일 에러가 나거나 안나거나해서
원인이 궁금하여 이렇게 질문드립니다.
import java.util.Scanner;
public class RSP {
static Scanner sc = new Scanner(System.in);
public char[] Solution(int num, int[] A, int[] B) {
for (int i = 0; i < num; i++) {
A[i] = sc.nextInt();
}
for (int i = 0; i < num; i++) {
B[i] = sc.nextInt();
}
char[] answer = new char[num];
for (int i = 0; i < num; i++) {
if (A[i] == B[i]) {
answer[i] = 'D';
} else if (A[i] == 1) {
if (B[i] == 2) {
answer[i] = 'B';
}
if (B[i] == 3) {
answer[i] = 'A';
}
} else if (A[i] == 2) {
if (B[i] == 1) {
answer[i] = 'A';
}
if (B[i] == 3) {
answer[i] = 'B';
}
} else if (A[i] == 3) {
if (B[i] == 1) {
answer[i] = 'B';
}
if (B[i] == 2) {
answer[i] = 'A';
}
}
}
System.out.print(answer);
return answer;
}
public static void main(String[] args) {
RSP main = new RSP();
Scanner sc = new Scanner(System.in);
System.out.print("입력: ");
int num = sc.nextInt();
int[] A = new int[num];
int[] B = new int[num];
for (char c : main.Solution(num, A, B)) {
System.out.println(c);
}
}
}
위와 같이 Solution 메소드 안에 A,B의 가위바위보 정보를 입력받을때는 컴파일 에러가 납니다. (문제의 입력 사항을 한꺼번에 복사해서 넣었을경우에 에러가 남. 직접 하나하나 손으로 키보드로 입력하면 에러가 안납니다.)
package Array;
import java.util.Scanner;
public class RSP {
static Scanner sc = new Scanner(System.in);
public char[] Solution(int num, int[] A, int[] B) {
char[] answer = new char[num];
for(int i = 0; i<num; i++) {
if(A[i] == B[i]) {
answer[i] = 'D';
}
else if(A[i] == 1) {
if(B[i] == 2) {
answer[i] = 'B';
}
if(B[i] == 3) {
answer[i] = 'A';
}
}
else if(A[i] == 2) {
if(B[i] == 1) {
answer[i] = 'A';
}
if(B[i] == 3) {
answer[i] = 'B';
}
}
else if(A[i] == 3) {
if(B[i] == 1) {
answer[i] = 'B';
}
if(B[i] == 2) {
answer[i] = 'A';
}
}
}
System.out.print(answer);
return answer;
}
public static void main(String[] args) {
RSP main = new RSP();
Scanner sc = new Scanner(System.in);
System.out.print("입력: ");
int num = sc.nextInt();
int[] A = new int[num];
int[] B = new int[num];
for(int i = 0; i<num; i++) {
A[i] = sc.nextInt();
}
for(int i = 0; i<num; i++) {
B[i] = sc.nextInt();
}
for(char c : main.Solution(num, A, B)) {
System.out.println(c);
}
}
}
하지만 이렇게 main 메소드 안에 A, B의 가위바위보 정보를 입력받도록 하는 메소드를 진행했을때에는 에러가 나지 않습니다.
(한꺼번에 입력결과를 입력해도 에러 안남)
이유가 궁금합니다 ㅠㅠ





