출처: 프로그래머스 코딩 테스트 연습
https://school.programmers.co.kr/learn/courses/30/lessons/120893
나의 풀이
using System;
using System.Text;
public class Solution {
public string solution(string my_string) {
string upperStr = my_string.ToUpper();
string lowerStr = my_string.ToLower();
var sb = new StringBuilder();
for(int i = 0; i < my_string.Length; i++)
{
if(my_string[i] == upperStr[i])
sb.Append(lowerStr[i]);
else
sb.Append(upperStr[i]);
}
return sb.ToString();
}
}
- 생각없이 풀고보니 쓰레기 배열 두 개랑 연산이 들어가서 성능면에서 적절치 못했다.
다른사람 풀이 1
using System;
public class Solution {
public string solution(string my_string) {
string answer = "";
foreach (var it in my_string)
{
if ('a' <= it && it <= 'z')
answer += it.ToString().ToUpper();
else
answer += it.ToString().ToLower();
}
return answer;
}
}
- char는 ASCII코드 index 기준으로 대소 비교가 가능하다.
다른사람 풀이 2
using System;
using System.Text;
public class Solution {
public string solution(string my_string)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < my_string.Length; i++)
{
if (char.IsLower(my_string[i]))
sb.Append(char.ToUpper(my_string[i]));
else
sb.Append(char.ToLower(my_string[i]));
}
return sb.ToString();
}
}
- char는 char.IsUpper(c) 와 char.IsLower(c) 메서드를 제공한다.
따로 확장 메서드는 제공하지 않는다. c.IsUpper()로 쓰면 오류남.
오버로드된 메서드를 루프에서 사용하면 될듯.
'🛡️ 코딩테스트 > 🛡️ 코테 : 프로그래머스' 카테고리의 다른 글
C# 3진법 뒤집기 - 프로그래머스 [Lv.1] (0) | 2023.01.22 |
---|---|
C# 핸드폰 번호 가리기 - 프로그래머스 [Lv.1] (0) | 2023.01.11 |
C# 암호 해독 - 프로그래머스 [Lv.0] 코딩 테스트 입문 (0) | 2022.12.24 |
C# 모음 제거 - 프로그래머스 [Lv.0] 코딩 테스트 입문 (0) | 2022.12.20 |
C# k의 개수 - 프로그래머스 [Lv.0] 코딩 테스트 입문 (0) | 2022.12.17 |