inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

3-H

3-h 코드 질문입니다.

해결된 질문

62

16wjdekdms

작성한 질문수 13

0

안녕하세요!

강의를 보고 혼자서 풀었는데 조금식 다르기는 하지만 전체적인 흐름은 큰돌님 코드와 똑같다고 생각합니다.
하지만 왜인지 자꾸 틀렸다고 뜨네용..

#include <bits/stdc++.h>
using namespace std;

int n, k;
queue<int> q;
int visited[200004];
int arr[200004];
int t;

int ret;

int main() {
	cin >> n >> k;

	if (n == k) {
		cout << 0 << "\n" << 1;
		return 0;
	}

	q.push(n);
	visited[n] = 1;
	arr[n] = -1;

	while (q.size()) {
		t = q.front();
		q.pop();

		if (t == k) {
			break;
		}

		for (int next : {t - 1, t + 1, t * 2}) {
			if (next < 0 || next > 100000) continue;
			if (visited[next]) continue;
			visited[next] = visited[t] + 1;
			arr[next] = t;
			q.push(next);
		}
	}
	int temp = k;
	vector<int> v;
	while (temp != -1)
	{
		v.push_back(temp);
		temp = arr[temp];
	}

	reverse(v.begin(), v.end());

	cout << visited[k] -1 << "\n";

	for (int a : v) {
		cout << a << " ";
	}
}

c++ 코딩-테스트

답변 2

0

큰돌

안녕하세요 16님 ㅎㅎ

arr

이 배열이요. 처음에 전부다 -1로 초기화해야하는게 아닐까요?

 

감사합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

16wjdekdms님께서 공유해 주신 코드에 대한 오류를 찾는 것은 문제가 주어지지 않은 상태에서 해결하기 어려울 수 있지만, 일반적으로 발생할 수 있는 몇 가지 오류를 짚어 드리겠습니다.

문제점 검토

  1. visited 배열의 범위 문제:
    현재 visited 배열은 200004로 설정되어 있지만, 문제에서는 최대 범위를 100000으로 설정했기 때문에 불필요하게 크다고 볼 수 있습니다. 더 안전하게 둔 것으로 이해할 수 있지만, 코드를 작성하고 디버깅하는 데 혼란을 줄 수 있습니다. 사용되지 않는 부분을 최적화하는 것도 하나의 방법입니다.

  2. while문 내 반복 조건:
    while (q.size()) 안에서 t == k일 때만 반복을 끝내는데, break 이후 추가적인 조건이나 로직을 확인하지 않는다는 점을 유념하여 확인하십시오. 그 근처에 있는 break; 문이 로직 상 적절하게 위치했는지 한번 더 점검해 보십시오. 예를 들어 같은 거리에 존재하는 더 여러 경로가 있을 수 있는데, 현재 구문으로는 첫 번째로 찾은 경로가 곧바로 사용됩니다.

  3. 반례 검사:
    초기 본 코드는 계획된 작동을 확인했지만 테스트 케이스가 안 맞다면 범위 내 극단적인 값이나 조건(n과 k가 아주 클 때 등) 등 다양한 케이스를 시도해 보고 코드를 조금씩 디버깅하며 조정하는 것이 필요합니다.

  4. 출력형식 및 제출 조건 확인:
    혹시 오류가 난 부분이 코드 로직이 아닌, 출력 형식이나 제출 조건에서 비롯된 것은 아닌지도 다시 한번 확인해보세요.

  5. 코드 흐름 리뷰:
    C++ 코드 특성 상 배열이나, 큐의 자료구조 오류 등이 보일 수 있습니다. 각 함수를 디버깅 도구로 하나하나 추적하며 코드 흐름을 분석해보세요.

유용한 디버깅 참고자료

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

코딩 살구클럽 가입 문의

0

55

2

코딩살구클럽 가입문의

0

62

2

3-K private case 질문

0

59

2

안녕하세요. 코딩살구클럽 문의드립니다!

0

73

2

7:41 듣다가 질문합니다

0

69

2

코드 리뷰 요청드립니다!

0

74

2

코딩살구클럽 계정 문의

0

75

2

SK하이닉스 대비 강의수강

0

206

3

코딩살구클럽 등록부탁드립니다.

0

72

2

7-F 재귀로 풀시 런타임애러

0

69

1

1-N 문제 질문입니다. (+ 채점오류)

0

81

2

코딩살구클럽 가입 확인 부탁드립니다.

0

85

2

직장인 코테 합격 공부방법 문의

0

115

2

코딩살구클럽 가입 방법

0

91

2

6-H 체점 관련 질문

0

74

1

채점서버 연결 관련 질문입니다

0

99

2

삼성 s직군

0

88

1

삼성 코테 없어짐

0

208

1

코딩살구클럽 가입부탁드립니다

0

87

2

코딩살구클럽 가입 요청 확인부탁드립니다

0

67

2

5-S 테스트 케이스 질문

0

73

2

코살 문제풀이 환경

0

85

2

2 - T 오큰수 문제가 있는 것 같습니다.

0

77

1

추천 추가문제들

0

71

2