본문 바로가기

TIL

2024/02/23 TIL

오늘 학습한 내용

[알고리즘]

가운데 글자 가져오기

 

단어의 길이가 홀수면? →몫 + 나머지 = 인덱스번호

단어의 길이가 짝수면? → 나누기 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에게 개선할 점을 물어보니 답해준 내용

  1. 리스트를 생성하고 문자열의 각 문자를 추가하는 대신에 문자열을 직접 인덱싱하여 해결할 수 있습니다. 이렇게 하면 리스트를 사용하는 오버헤드를 줄일 수 있습니다.
  2. 문자열의 길이를 반복해서 계산하는 대신에 한 번만 계산하면 됩니다.
  3. 조건문을 사용하여 문자열의 길이가 홀수일 때와 짝수일 때를 처리하고 있습니다. 이 부분을 보다 간결하게 만들 수 있습니다.
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() 문자열에서 지정된 범위에 해당하는 부분 문자열을 반환하는 데 사용

  1. Substring(int startIndex): 지정된 시작 인덱스부터 문자열의 끝까지의 부분 문자열을 반환합니다.
  2. 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