프로그래머스 코딩테스트 연습
[프로그래머스 코테 C#] Lv1. 가운데 글자 가져오기
노재두내
2024. 5. 8. 11:48
문제 설명
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
재한사항- s는 길이가 1 이상, 100이하인 스트링입니다.
"abcde" | "c" |
"qwer" | "we" |
<나의 풀이>
먼저 홀수만 한번 풀어보자
단어의 길이를 알려면 .Length를 써야하니 ==> string을 배열로 변환하자 ===>ToCharArray() 사용
public class Solution {
public string solution(string s) {
string answer = "";
char[] chars = s.ToCharArray();
//짝수
if(chars.Length%2==0)
{
}
//홀수
else
{
int n=chars.Length/2;
answer+=chars[n];
}
return answer;
}
}

예상처럼 길이가 홀수일 경우에는 잘 출력된다.
문제는 짝수인데,
int n=chars.Length/2;
answer+=chars[n-1];
answer+=chars[n];
이런식으로 하면 될듯
<전체 코드>
public class Solution {
public string solution(string s) {
string answer = "";
char[] chars = s.ToCharArray();
//짝수
if(chars.Length%2==0)
{
int n=chars.Length/2;
answer+=chars[n-1];
answer+=chars[n];
}
//홀수
else
{
int n=chars.Length/2;
answer+=chars[n];
}
return answer;
}
}

오예 통과
<다른사람 풀이>
Substring을 많이 씀
이 인스턴스에서 부분 문자열을 검색합니다. 부분 문자열은 지정된 문자 위치에서 시작하고 길이도 지정되어 있습니다

using System;
public class Solution {
public string solution(string s) {
string answer = "";
int a = s.Length / 2;
if (s.Length % 2 != 0)
answer = s.Substring(a, 1);
else
answer = s.Substring(a - 1, 2);
return answer;
}
}
짝수이면, s.Length/2 위치에서 한개검색
홀수이면, s.Length/2 -1 위치에서 두개 검색