inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

1-K

1-K 질문드립니다

285

kira.hanjh

작성한 질문수 1

0

안녕하세요 선생님
강의 잘 보고 코테 준비중입니다

http://boj.kr/0e551d7f960a46a0a8bda8fc069bcc40

1% 부터 틀리는게 뭐가 문제일까요?
반례들 넣어보면 잘 나오는거 같거든요

답변 좀 부탁드립니다~

c++ 코딩-테스트

답변 1

0

큰돌

안녕하세요ㅎㅎ

이 코드는 odd는 무조건 있어야 하는 코드입니다.

	ret = odd.first;

지금 보시는 것처럼 ret에 무조건 odd를 담고 있죠. 짝수일 때 이부분이 에러가 날 수 있습니다.

 

제가 좀 다듬어 봤는데요.

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

map<char, int> mp;
int odd_count = 0;
char odd_char;
string first_half, second_half;
int main() 
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	string s;
	cin >> s;
 
	for (auto c : s)
		mp[c]++;
 
	for (auto kv : mp)
	{
		if (kv.second % 2 != 0)
		{
			odd_count++;
			odd_char = kv.first;
			if (odd_count > 1)
			{
				cout << "I'm Sorry Hansoo\n";
				return 0;
			}
		}
	}
 
	for (auto kv : mp)
	{
		first_half += string(kv.second / 2, kv.first);
	}
	second_half = first_half;
	reverse(second_half.begin(), second_half.end());

	if (odd_count == 1)
	{
		first_half += odd_char;
	}
	cout << first_half + second_half << "\n";
	
	return 0;
}

이렇게 해보시겠어요?

 

감사합니다.

0

kira.hanjh

아 홀수일때만 처리를 해야겠군요
답변 감사드립니다~!

코딩 살구클럽 가입 문의

0

66

2

코딩살구클럽 가입문의

0

69

2

3-K private case 질문

0

64

2

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

0

77

2

7:41 듣다가 질문합니다

0

77

2

코드 리뷰 요청드립니다!

0

83

2

코딩살구클럽 계정 문의

0

79

2

SK하이닉스 대비 강의수강

0

217

3

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

0

78

2

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

0

74

1

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

0

82

2

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

0

86

2

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

0

127

2

코딩살구클럽 가입 방법

0

96

2

6-H 체점 관련 질문

0

74

1

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

0

101

2

삼성 s직군

0

88

1

삼성 코테 없어짐

0

212

1

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

0

87

2

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

0

69

2

5-S 테스트 케이스 질문

0

78

2

코살 문제풀이 환경

0

88

2

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

0

81

1

추천 추가문제들

0

74

2