728x90
문제 설명
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
제한 사항
- s는 길이가 1 이상, 100이하인 스트링입니다.
입출력 예

풀이
1. 배열로 풀기
using System;
public class Solution {
public string solution(string s) {
string answer = "";
char[] str = s.ToCharArray();
if(str.Length%2 == 0)
{
answer = str[str.Length/2 -1].ToString()+str[str.Length/2].ToString();
}
else
{
answer = str[(str.Length-1)/2].ToString();
}
return answer;
}
}
: 조금 복잡하게 풀었다..
우선 string 문자열을 문자로 바꾸기 위해 ToCharArray()를 이용하여 문자 배열로 만들어주었다.
그 후 문자 배열이 짝수이면 배열의 길이의 반 번째의 값과 반 번째 바로 앞 갚을 붙여 반환하였고,
문자 배열이 홀수이면 배열의 길이에서 1을 뺀 값의 반 번째에 있는 값을 반환해주었다.
2. 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,2);
}
else
{
answer = s.Substring(a,1);
}
return answer;
}
}
: 이게 훨씬 간단하다!
우선 int a에 문자열 a의 길이의 반을 값으로 넣어준다. (int는 소수점이하는 버림)
문자열 s의 길이를 반으로 나눈 나머지가 0이면(짝수) 가운데 두 값을 반환해야하므로, substring의 시작값을 a-1로 해주고 두 값을 반환해야하므로 뒤에는 2를 써준다.
나머지가 0이 아닐 경우(홀수) 가운데 값 1개만 반환하면 되므로 substring의 시작값을 a로 해주고 뒤에는 1을 써준다.
'공부 > 코딩테스트' 카테고리의 다른 글
프로그래머스/C# - 내적 (0) | 2024.06.13 |
---|---|
프로그래머스/C# - 수박수박수박수박수박수? (0) | 2024.06.13 |
프로그래머스/C# - 제일 작은 수 제거하기 (1) | 2024.06.11 |
프로그래머스/C# - 나누어 떨어지는 숫자 배열 (0) | 2024.06.10 |
프로그래머스/C# - 콜라츠 추측 (0) | 2024.06.10 |