- 오늘의 학습 키워드 hash table
- 공부한 내용 본인의 언어로 정리하기
palindrome: 회문, 앞뒤 방향으로 볼때 같은 순서의 문자로 구성된 문자열
문자는 대소문자를 구분한다.
회문의 각 문자는 짝을 이룬다.
최대 하나의 문자만 홀수 개수로 사용될수 있다.
각 문자의 출현 횟수를 센다.
짝수 개수의 문자는 모두 사용하고 홀수 개수문자는 짝수부분이 있으면 사용한다.
문자들의 순서를 재배열 할 수 있다.
function longestPalindrome(s);
문자별 출현 횟수를 저장할 맵 형성
for each 문자 c in s:
맵에서 c의 출현 횟수 증가
결과 길이: 0
홀수 문자 존재여부 = false
for each 문자 c의 출현 여부 count in 맵
if count is 짝수:
결과 길이 += count
else: //홀수 인경우
결과 길이 +=(count-1) //짝수 부분만 사용
홀수 문자 존재 여부 =true
if 홀수 문자 존재 여부:
결과 길이 +=1 // 중앙에 하나의 홀수 문자 추가
return 결과 길이
- 오늘의 회고
- 어떤 문제가 있었고, 나는 어떤 시도를 했는지
1.홀수개인 경우를 어떻게 처리해야할지 몰랐음.
여기에 추가적으로 의문이었던점
2.홀수개가 여러개 문자로 나타날 경우 어떤 문자가 가운데에 사용되는지?
- 어떻게 해결했는지
1- A. 회문을 만들때 짝수개로 나와야 count 를 +1 처리를 할수 있는데 홀수인 경우는
-1을하면 짝수개 숫자만큼은 사용할수 있음
2-A 해당사항은 문제에서 요구한것이 아니고 실제 문제 요구사항은 가능한 가장 긴 회문의 길이이므로 어떤 특정
문자를 중앙에 배치하는것에 관계없이 최종 길이만 나타내면되어서 hasOdd 변수를 통해 홀수의 개수가
있는지를 먼저 체크하고 결과 길이+1을 하기만 하면 되었다.
- 무엇을 새롭게 알았는지
palindrome 저번에도 풀었는데 s.tochararray를 보면서도 아무것도 떠올리지 못하는것을 보고
복습의 중요성을 새삼 느꼈다 . 담에 나오면 꼭 다시 풀어내자
- 내일 학습할 것은 무엇인지
'【스터디노트】 > ▷TIL' 카테고리의 다른 글
코테 스터디 30일차 TIL + 오늘의 학습 키워드 Dynamic Programming (0) | 2025.05.15 |
---|---|
코테 스터디 29일차 TIL + 오늘의 학습 키워드 linkedList (0) | 2025.05.14 |
코테 스터디 27일차 TIL + 오늘의 학습 키워드 다이나믹 프로그래밍 (0) | 2025.05.09 |
코테 스터디 26일차 TIL + 오늘의 학습 키워드 해시 테이블 (0) | 2025.05.08 |
코테 스터디 25일차 TIL + 오늘의 학습 키워드 이진탐색 (1) | 2025.05.06 |