오늘 학습한 내용
[알고리즘]
가운데 글자 가져오기
단어의 길이가 홀수면? →몫 + 나머지 = 인덱스번호
단어의 길이가 짝수면? → 나누기 2를 해서 몫 -1 번인덱스 + 몫 인덱스
문자열의 문자를 리스트로 만들어서 풀어야 겠다고 생각함.
using System.Collections.Generic;
using System.Linq;
public class Solution
{
public string solution(string s)
{
string answer = "";
List<string> chars = new List<string>();
chars.AddRange(s.Select(c => c.ToString()));
int length = s.Length;
if(length % 2 != 0)
{
int temp1 = length / 2;
int temp2 = length % 2;
int target = (temp1 + temp2) - 1;
answer = chars[target];
}
else
{
int target = length / 2;
answer = chars[target - 1] + chars[target];
}
return answer;
}
}
GTP에게 개선할 점을 물어보니 답해준 내용
- 리스트를 생성하고 문자열의 각 문자를 추가하는 대신에 문자열을 직접 인덱싱하여 해결할 수 있습니다. 이렇게 하면 리스트를 사용하는 오버헤드를 줄일 수 있습니다.
- 문자열의 길이를 반복해서 계산하는 대신에 한 번만 계산하면 됩니다.
- 조건문을 사용하여 문자열의 길이가 홀수일 때와 짝수일 때를 처리하고 있습니다. 이 부분을 보다 간결하게 만들 수 있습니다.
using System;
public class Solution
{
public string solution(string s)
{
int length = s.Length;
int middleIndex = length / 2;
if (length % 2 == 0)
{
// 문자열 길이가 짝수인 경우
return s.Substring(middleIndex - 1, 2);
}
else
{
// 문자열 길이가 홀수인 경우
return s.Substring(middleIndex, 1);
}
}
}
Substring() 문자열에서 지정된 범위에 해당하는 부분 문자열을 반환하는 데 사용
- Substring(int startIndex): 지정된 시작 인덱스부터 문자열의 끝까지의 부분 문자열을 반환합니다.
- Substring(int startIndex, int length): 지정된 시작 인덱스부터 지정된 길이만큼의 부분 문자열을 반환합니다.
오늘의 회고
해야 할 일
- 1. 프로젝트 팀 구하기
- 2. 헤드퍼스트C# 2챕터 진행
- 3. 유니티 심화 주차 강의 마무리
'TIL' 카테고리의 다른 글
2024/02/28 TIL (0) | 2024.02.28 |
---|---|
2024/02/26 TIL (0) | 2024.02.26 |
2024/02/21 TIL (0) | 2024.02.21 |
2024/02/20 TIL (0) | 2024.02.20 |
2024/02/19 TIL (0) | 2024.02.19 |