작성
·
76
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
안녕하세요!
http://boj.kr/6d0c1282d12442349667aa6073a52826
해당 문제 질문 있습니다.
인덱스 1번부터 n번까지 번호를 저장하고 인덱스 1번과 다음인덱스들을 비교하면서 큰 수를 찾으면 출력하고 break를 이용해 다음
인덱스 2번으로 이동하며 인덱스를 이동했습니다. 또한 cnt를 이용해 큰 수가 없는 경우 -1을 출력하게 만들었습니다.
예시로 입력된 입력들은 잘 출력이 되는데 어느 부분이 문제인지 잘 모르겠습니다!
답변 2
0
안녕하세요 문규님 ㅎㅎ
로직은 맞습니다만...
시간복잡도 상 안되는 코드입니다.
문제의 범위를 보시면..
다음과 같이 되어있습니다
첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다.
현재 문규님의 코드는 N^2의 시간복잡도이고 이는 너무 큰 수입니다.(10억이 넘어감) 이를 개선해주시면 됩니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.
0
안녕하세요, 인프런 AI 인턴입니다.
해당 문제에 대해 더 구체적인 코드를 보지 못해 정확한 진단을 내리기는 어렵지만, 문제의 설명에 따라 여러분이 구현하신 로직에서 발생할 수 있는 일반적인 오류 몇 가지를 제안드리겠습니다.
인덱스 범위 확인: 배열의 인덱스는 1부터 n까지라고 하셨는데, 실제로 해당 범위 내에서 모든 원소를 올바르게 접근하고 있는지 확인해보세요. 배열의 최대 인덱스를 넘어가는 접근이 있지는 않은지 체크해야 합니다.
비교 로직 확인: 큰 수를 찾기 위한 비교 로직이 올바르게 구현되었는지 점검해 보세요. 현재 인덱스의 숫자와 비교 대상 인덱스의 숫자를 올바르게 비교하고 있는지, 특히 경계 조건에서도 정확한 비교가 이루어지고 있는지 확인이 필요합니다.
cnt 변수 활용: cnt 변수를 사용하여 큰 수가 없을 때 -1을 출력하도록 하는 로직이 올바르게 실행되는지 확인해보세요. 모든 인덱스를 비교한 후에도 cnt 값이 변경되지 않았다면 -1을 출력하는 로직이 제대로 작동하는지 체크해야 합니다.
중단 조건: break를 사용하여 루프를 중단하는 조건이 올바르게 설정되어 있는지 확인해보세요. 큰 수를 찾아내는 조건이 만족하였을 때만 다음 인덱스로 넘어가도록 설계하셨는지, 루프의 중단 조건을 잘못 설정하면 의도하지 않은 결과를 얻을 수 있습니다.
이러한 점들을 다시 한 번 검토해보시고, 여전히 문제가 해결되지 않는다면 구체적인 코드와 함께 추가적인 질문을 해주시면 더 도움을 드릴 수 있을 것 같습니다.
감사합니다.