inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

가위바위보 문제에서 각각의 정수형 배열에 숫자 입력할때 에러 질문입니다.

343

tjrwls08088

작성한 질문수 5

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 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의 가위바위보 정보를 입력받도록 하는 메소드를 진행했을때에는 에러가 나지 않습니다. 

(한꺼번에 입력결과를 입력해도 에러 안남) 

이유가 궁금합니다 ㅠㅠ

java 코테 준비 같이 해요!

답변 1

0

김태원

안녕하세요^^

제 컴퓨터에서는 위에 코드 solution에서 입력받은 코드 컴파일에러 안뜨고 정상실행되고, 키보드로 입력해보니 잘 입력됩니다.

안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.

1

86

3

갑자기 채점 사이트가 바뀌었어요

0

57

1

문제 리스트 페이지

0

44

1

채점 사이트 관련 질문드립니다

0

42

1

봉우리 문제 질문입니다

0

103

2

씨름 선수 문제에서 각 선수의 몸무게나 키가 같을 수도 있다면?

0

75

0

이 코드랑 영상 코드중에 뭐가 더 좋은 코드인가요?

0

83

0

가중치 방향 그래프에서 가중치가 0인 간선을 표현하는 방법

0

77

1

좌표 정렬 문제 이 코드가 왜 틀린지 모르겠습니다 ㅠㅠ

0

96

2

6-7 강의에서

0

56

1

6-6. 장난꾸러기 질문 있습니다.

0

55

1

강의 수강후 코딩테스트

0

127

1

answer 변수 사용 여부

0

51

1

2중 for문

1

99

2

2-11. 임시반장정하기 (Runtime Error)

0

69

1

혹시 LinkedList 같은 자료 구조들은 따로 배우지 않나요?

0

76

1

이런 풀이는 어떨까요

0

52

1

자바 스트림 방식의 효율성 질문 드립니다.

0

64

1

알고리즘 자료 구조들..

0

69

1

StringBuilder vs BufferdWriter

0

53

1

원더랜드(프림)

0

58

1

이런 코드는 어떤가요?

0

68

1

bfs 풀이

0

65

1

병합정렬

0

58

1