선생님 왜 오답인지 이해가 안갑니다..
100
작성한 질문수 18
삭제된 글입니다
답변 1
0
맨 앞 줄 0번 인덱스는 선생님이 아니라 학생이에요!
저렇게 비교한다면, 마지막 비교시 배열의 범위를 초과하게
ArrayIndexOutOfBoundsException
되니 런타임 에러가 발생하겠네요!
0
배열범위를 초과하지 못하도록 처음 입력받은 str에 str+" 0" 이렇게
마지막 0은 가장 작은 수로 무조건 제외되니까 공백과 0을 추가해줬습니다..
그리고 에러는 Runtime Error가 발생하네요ㅠㅠ
0
서로 비교하게 된다면, 만약 서로 비교할 당시 자기 자신과 바로 뒤 학생이 크다고 cnt++을 해버리면, 만약 바로 뒤 학생보다 앞에 있는 학생들중 키가 더 큰 학생이 있다면, 논리적 오류가 될 수 있겠죠!
웬만하면 nextLine()을 쓰시지 않는 것을 추천 드려요! nextInt()로 받고,
nextLine()은 웬만하면 문자열 받을 때만 쓰시길 추천드려요.
똑같은 로직으로 밑 코드로 바꾸었을 때, 오답은 동일합니다.
import java.util.Scanner;
public class Main {
static void Solution(int num, int[] students){
students[num] = 0;
int cnt = 1;
for (int i = 1; i < num; i++) {
if(students[i] < students[i+1]){
cnt++;
}
}
System.out.println(cnt);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int[] students = new int[num + 1];
for (int i = 0; i < num; i++){
students[i] = sc.nextInt();
}
Solution(num,students);
}
}
0
감사합니다!
nextLine은 왠만하면 사용 않도록 하겠습니다ㅠㅠ
근데 설명해주신 위의 로직에서 제가 사용한 방식을 적용시키려면
처음 int배열 생성시 num+1을 크기를 할당받아 num+1의 인덱스에 "0"이라는 값을 넣어 주어야 합니다.
반목문에서의 ArrayIndexOutOfBoundException방지를 위한 더미값을 넣어주려함인데..
반목문은 num크기 만큼 돌리고 num+1의 값은 마지막값의 예외 방지를 위한 "0"이라는 값이 들어있습니다.
students[num+1] = 0;
즉 이렇게 사용하기 위함 이었습니다.
제 로직은 처음 입력값 str자체에 +" 0"으로 받아서 split으로 배열을 만들어 마지막 인덱스값에 "0'을 넣어 배열 생성시 처음부터 반복문안에서의 ArrayIndexOutOfBoundException을 방지하기위해 추가하여 만든 경우입니다..
아물론 이렇게 해도 마찬가지로 RuntimeError가 발생합니다..
원인을 모르겠네여 ㅠㅠ 제가 이해를 잘 못한 건지.. 죄송합니다!!!
0
num은, 학생 수라고 생각했을 때, 만약 학생수가 6이라면
int[]의 길이는 6으로 초기화 될테고, 0, 1, 2, 3, 4, 5 인덱스가 존재하겠죠.
그래서 num + 1로 초기화 하면 길이가 7이 되겠고, num은 6이니 0, 1, 2, 3, 4, 5, 6 까지 생성된 배열의 마지막 부분에 0을 넣을 수 있겠습니다.
0
말씀하신데로 학생이 6명이면 학생수대로 배열을 선언하고 초기화 하겠지만 ㅜㅜ 저는 처음 배열 선언시 num+1로 할당한 이유가 계속 말씀드린데 for문안에서 학생배열[i] < 학생배열[i+1] 로직의 조건에 배열ArrayIndexOutOfBoundException 방지하기 위해서 길이7로 초기화해서 마지막값 0을 추가한거에요. 마지막 학생도 비교를 하기 위해서요.
제가 문제 이해를 못한것 같네여.. 질문한 부분은 그게아니라서ㅠㅠ
결과적으로 제가 만든게 정답이 아닌것 같아서 그냥 선생님 설명대로 공부하려구요!
감사합니다ㅠㅠㅜㅜㅜㅜㅜ
안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.
0
70
2
갑자기 채점 사이트가 바뀌었어요
0
50
1
문제 리스트 페이지
0
42
1
채점 사이트 관련 질문드립니다
0
40
1
봉우리 문제 질문입니다
0
102
2
씨름 선수 문제에서 각 선수의 몸무게나 키가 같을 수도 있다면?
0
73
0
이 코드랑 영상 코드중에 뭐가 더 좋은 코드인가요?
0
78
0
가중치 방향 그래프에서 가중치가 0인 간선을 표현하는 방법
0
76
1
좌표 정렬 문제 이 코드가 왜 틀린지 모르겠습니다 ㅠㅠ
0
94
2
6-7 강의에서
0
53
1
6-6. 장난꾸러기 질문 있습니다.
0
50
1
강의 수강후 코딩테스트
0
126
1
answer 변수 사용 여부
0
50
1
2중 for문
1
96
2
2-11. 임시반장정하기 (Runtime Error)
0
67
1
혹시 LinkedList 같은 자료 구조들은 따로 배우지 않나요?
0
75
1
이런 풀이는 어떨까요
0
50
1
자바 스트림 방식의 효율성 질문 드립니다.
0
62
1
알고리즘 자료 구조들..
0
68
1
StringBuilder vs BufferdWriter
0
53
1
원더랜드(프림)
0
55
1
이런 코드는 어떤가요?
0
66
1
bfs 풀이
0
62
1
병합정렬
0
58
1





