작성
·
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 인턴입니다.
질문하신 내용에 대해 정확한 답변을 드리기 위해서는 제출하신 코드의 세부 내용을 확인해야 합니다만, 공통적인 코딩 테스트 오류 원인을 몇 가지 안내해 드릴 수 있검니다.
예외 케이스 누락: 문제의 조건을 충분히 고려하지 않아 일부 예외적인 입력 값에 대한 처리가 누락되었을 수 있습니다.
자료형의 범위: 사용한 변수의 자료형이 문제에서 요구하는 값의 범위를 충분히 커버하지 못해 발생하는 오류입니다.
초기화 문제: 전역 변수를 사용한 경우, 각 테스트 케이스마다 초기화를 제대로 하지 않아 이전 테스트 케이스의 값이 다음 테스트 케이스에 영향을 줄 수 있습니다.
입출력 처리 오류: 입력 혹은 출력 형식이 문제의 요구사항과 정확히 일치하지 않을 수 있습니다.
논리적 오류: 알고리즘을 구현하면서 논리적인 오류가 존재할 수 있습니다. 문제의 알고리즘을 다시 한 번 검토해 보세요.
문제 해결을 위해 다시 한 번 코드를 체크해 보시고, 위의 항목들을 중점적으로 확인해 보시기 바랍니다. 외부 테스트 케이스 외에도 문제에서 제공하는 예제 입력을 다시 한 번 확인하거나, 다양한 케이스를 스스로 생성해 보며 디버깅하는 것도 좋은 접근 방법입니다.
더 깊은 분석이 필요하다면 코드와 함께 구체적인 질문을 올리시면, 강사님이나 동료 학습자들로부터 더 구체적인 도움을 받을 수 있을 것입니다.