인프런 커뮤니티 질문&답변

김경탁님의 프로필 이미지
김경탁

작성한 질문수

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

2-I

2-I. 틀린 이유가 궁금합니다.

작성

·

90

·

수정됨

0

http://boj.kr/ffdb3a2b0c96414ba111477f93c061b2

외부tc는 정상출력되지만 제출을 하면 틀립니다.

반례를 생각해봐도 도저히 떠오르지 않아 선생님께 여쭤봅니다.

틀린 이유가 뭘까요?

답변 2

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 경탁님 ㅎㅎ

	stable_sort(v.begin(), v.end()); // num less sort 
	sort(v.begin(), v.end(), cmp); // n cnt greater sort

이부분이 잘못된 것 같습니다.

문자열을 기반으로 오름차순 정렬이 될 수 있도록 cmp 를 수정해주시면 됩니다.

다른 부분은 다 잘 짜셨습니다

 

아래는

고민하시다가 혼자 스스로 해주시구 안되시면 봐주세요. ㅎㅎ

경탁님 코드기반으로 고친 풀이입니다.

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

int n;
string s;
vector<string> v;

bool cmp(string a, string b) {
    if (a.size() != b.size()) {
        return a.size() < b.size();
    }
    return a < b;
}

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL); cout.tie(NULL);
	
	cin >> n;
	
	while (n--) {
		cin >> s;
		string rets = "";
		for (int i = 0; i < s.size(); i++) {
			if (s[i] >= 'A') { // is alpha
				if (rets != "") {
					v.push_back(rets);
					rets = "";
				}
			}
			else if (rets == "0") rets = s[i];
			else rets += s[i];
		}
		if (rets != "") {
			v.push_back(rets);
		}
	}
	 
	sort(v.begin(), v.end(), cmp); // n cnt greater sort
	for (string a : v) cout << a << "\n";
	
	return 0;
}

 

 

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

 

0

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

질문하신 내용에 대해 정확한 답변을 드리기 위해서는 제출하신 코드의 세부 내용을 확인해야 합니다만, 공통적인 코딩 테스트 오류 원인을 몇 가지 안내해 드릴 수 있검니다.

  1. 예외 케이스 누락: 문제의 조건을 충분히 고려하지 않아 일부 예외적인 입력 값에 대한 처리가 누락되었을 수 있습니다.

  2. 자료형의 범위: 사용한 변수의 자료형이 문제에서 요구하는 값의 범위를 충분히 커버하지 못해 발생하는 오류입니다.

  3. 초기화 문제: 전역 변수를 사용한 경우, 각 테스트 케이스마다 초기화를 제대로 하지 않아 이전 테스트 케이스의 값이 다음 테스트 케이스에 영향을 줄 수 있습니다.

  4. 입출력 처리 오류: 입력 혹은 출력 형식이 문제의 요구사항과 정확히 일치하지 않을 수 있습니다.

  5. 논리적 오류: 알고리즘을 구현하면서 논리적인 오류가 존재할 수 있습니다. 문제의 알고리즘을 다시 한 번 검토해 보세요.

문제 해결을 위해 다시 한 번 코드를 체크해 보시고, 위의 항목들을 중점적으로 확인해 보시기 바랍니다. 외부 테스트 케이스 외에도 문제에서 제공하는 예제 입력을 다시 한 번 확인하거나, 다양한 케이스를 스스로 생성해 보며 디버깅하는 것도 좋은 접근 방법입니다.

더 깊은 분석이 필요하다면 코드와 함께 구체적인 질문을 올리시면, 강사님이나 동료 학습자들로부터 더 구체적인 도움을 받을 수 있을 것입니다.

김경탁님의 프로필 이미지
김경탁

작성한 질문수

질문하기