| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |
- c#코테
- 유니티서바이벌게임만들기
- solved class 2
- 백준코딩테스트
- C#문법
- c++ 백준
- unity3d게임만들기
- Unity
- 백준 구현문제
- 유니티공부
- c#기본문법
- 바킹독
- 백준
- unity게임
- 오블완
- c#기초문법
- 리그오브레전드턴제게임
- 유니티
- c++ solved.ac
- 백준코테
- 바킹독알고리즘
- unity3dservival
- unity게임만들기
- 백준 c++ 공부
- c#코딩기초트레이닝
- C++
- 티스토리챌린지
- 백준 C++
- 유니티게임만들기
- c#
- Today
- Total
나 개발자 진짜 되냐?
3517. 가장 작은 회문 재배열 I 본문

반갑습니다.
요즈음 좀 게으르게 살아서
문제는 한 문제씩 풀었지만 쉬운 문제만 풀다가
오늘은 각 잡고 또 살짝 발담구러왔습니다.
middle문제길래 좀 쉽게 봤더니..
매우 저를 난감하게 하는군요
함께 보시죠


문제가 짧아서 좋았는데..
제 착각이었습니다.
오늘은 시간을 재고 풀려고 시간도 쟀습니다.
그리고 문제를 열심히 쳐다봤습니다.
계획은 이랬습니다.
정렬을 하면
aabbb가 될 테니
0번부터 왼쪽, 오른쪽 왼쪽 오른쪽 반대로 돌아가면서 하면 되지 않을까?
열심히 식을 써봤습니다.
s[1] = ans[5];
s[2] = ans[1];
s[3] = ans[4];
s[4] = ans[2];
s[5] = ans[3];
근데 이러면 변수도 많아지고 더하고 빼는 것도 너무 많아진다.
정말 택도없..
28분 뒤..
문제가 뭔지 대충 깨달았습니다.
위의 식으로는 쉽지 않다고 생각해서 방향을 바꿨습니다.
생각해 보니 aabbb면
그냥 안쪽부터 채우면 되지 않을까? 였다
반대로 greater로 하면 bbbaa니까
b부터 넣어서 바깥을 채우자는 생각이었다.

뿌듯해진 나
40분이 지나고...
답이 이상해서 결국 인지 씨를 찾았다.
인지 씨는
이 방법은 안된다고 했다.
왜 안되는지 알려달라고 하지 말라고 해서
진짜 힌트도 안 주고 안된다고만 말한다.
그렇다
생각해 보니 놓치고 있던 게 있다.
zaabz 일경우
azbza인데
내가 이걸 greater로 하면 zzbaa 여서 난리가 난다.
이걸 잊고 있었다.
결국 홀수인 친구가 딱 하나 있으니 그것을 찾아야 한다.
이걸 잊고 있었다고 하니..
인지 씨가 힌트를 준다.
count를 쓰는 거 어때?
사실 생각은 했는데 어떻게 해야 하나.. 싶었다.
글자를 세서, 반만 쓰면 되지 않아?
그러네
그럼 일단 홀수인애는 하나일 테니 하나를 찾고
글자를 반만 쓰면 되겠네!
60분이 되었을 때
코드를 대충 완성했다.

시간초과가 나버린.. 최악의 식 탄생
인지 씨는 논리적으로 별로라고 했다.
0. vector은 (size, value)이다.
ㅋ.. 죄송해요.... 반대로 알았어요..
1. char center 일 때 저렇게 '' 해주면 안 된다.
무조건 널 표시를 해줘야 한다고 한다.
'\0'으로
그냥 띄어쓰기 안 되나요??? 네.
공백도 하나의 문자로 치기 때문이지요. 그럼 짝수 홀수를 알 수가 없습니다.
그럼 어떡하죠??
그냥 center을 string으로 바꾸면 됩니다.
그럼? 밑에서 answer 더할 때도 문제가 안됩니다. ㅎㅅㅎ
2. while문이 이상하다.
저렇게 하면 4일 땐 되는데 3일 때는 결국 1이 되어서 통과가 된다고 한다.
예상했던 거긴 했는데..
그러면 어떡하죠??
그냥 반복문을 쓰라고 한다.

그냥 반만 적으라는 것..!
좋다.
그리고 더 좋은 친구
생성자 string
string(count, char) 이여서
특정문자를 N번 반복하는 것.
그래서
half += string(v [i] / 2, i+ 'a'); 해주면
그만큼 반복해 준다.
나는 이게 더 간결한 거 같아서 이거 채택했다.

이렇게 바꾸니 테케 다 통과!!

ㅋㅋ 왜 영어로 했냐고요?!

바밥 = 아바가 되는 매직

성공!!
완성본

휴!
이 문제를 푸는데만 80분이 걸려버린..
한 문제 푸는데 80분이라뇨..
하지만 이런 펠렌어쩌고 함수를
이제는 좀 더 잘 풀 수 있을지도 모른다.
반띵 하는 것도
좋은 방향이다.
string도 알았고
많이 알았으니까
저녁이나 먹으러 가야지 ㅎ
'C++을 시작해봐요! > LeetCode 문제풀어요!' 카테고리의 다른 글
| [ C++ ] 1071. 문자열의 최대공약수 (0) | 2026.08.07 |
|---|---|
| [ C++ ] 3756. 0이 아닌 숫자들을 연결하고 합계를 곱하기 II (1) | 2026.07.09 |