250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- CSharp #자료구조
- Scrooling
- 유니티
- Ainimation Blending
- 플레이어 방향전환
- 2D슈팅게임
- 패럴렉스
- Hpbar
- Animation State Machine
- LayerMark
- 프리팹
- raycasting
- Object Pooling
- Unity
- Object Poling
- raycast
- Blend Type
- 일시정지
- Vector3
- rotation
- joystick
- 플레이어 이동
- Hp바
- rigidbody
- apk
- 스크롤링
- 오브젝트 풀링
- Transform
- Prefabs
- Parallax
Archives
- Today
- Total
주녘공부일지
[프로그래머스 C#] Lv.3 가장 긴 팰린드롬 본문
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12904
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 정답코드 및 핵심 아이디어, 유의사항
주어진 문자열의 모든 부분문자열 중에 가장 긴 팰린드롬 문자열을 찾는 문제
- 팰린드롬 문자열 : 뒤집어도 동일한 문자열이 되는 문자열
- 모든 부분문자열에 대해 판단해야 되기 때문에 모든 인덱스를 중심으로 완전탐색 해야 함
- 팰린드롬 문자열은 양 쪽 인덱스를 같은 개수로 제외시켜도 팰린드롬 문자열임
1) 팰린드롬 문자열을 찾는 방법
- 직접 문자열을 뒤집어서 Equals 메서드로 비교하면 비효율적이므로, 좌우로 이동할 포인터 위치를 받아 각 포인터 좌표의 문자가 같은지 비교하며 팰린드롬 문자열임을 판단하고 팰린드롬 문자열일 경우 각 좌우 포인터를 한칸씩 더 이동해 판단하는 것을 반복
-> 양쪽 포인터를 동시에 이동하며 판단해야 되기 때문에 길이가 홀수인 경우와 짝수인 경우를 따로 체크
주석 참조
using System;
public class Solution
{
public int solution(string s)
{
int answer = 1; // 최소 값
for (int i = 1; i < s.Length; i++)
{
// 길이가 홀수인 팰린드롬 문자열 찾기
Function(s, 1, i - 1, i + 1, ref answer);
// 길이가 짝수인 팰린드롬 문자열 찾기
Function(s, 0, i - 1, i, ref answer);
}
return answer;
}
public void Function(string s, int count, int leftIndex, int rightIndex, ref int answer)
{
// 범위 벗어남
if (leftIndex < 0 || rightIndex >= s.Length)
return;
// 팰린드롬 문자열을 찾음
if (s[leftIndex] == s[rightIndex])
{
count += 2;
Function(s, count, --leftIndex, ++rightIndex, ref answer);
answer = Math.Max(answer, count);
}
}
}
728x90
'Programmers - C# > CodingTest Lv.3' 카테고리의 다른 글
[프로그래머스 C#] Lv.3 입국심사 (0) | 2024.01.26 |
---|---|
[프로그래머스 C#] Lv.3 다단계 칫솔 판매 (1) | 2024.01.25 |
[프로그래머스 C#] Lv.3 연속 펄스 부분 수열의 합 (0) | 2024.01.12 |
[프로그래머스 C#] Lv.3 스티커 모으기(2) (1) | 2024.01.04 |
[프로그래머스 C#] Lv.3 미로 탈출 명령어 (0) | 2023.12.13 |