티스토리 뷰
이번 문제는 문자열 속 숫자만 찾아내는 문제이다.
일단 숫자임을 찾기위해서는 각 문자들을 순차적으로 확인해야한다.
그리고 숫자라면 따로 보관하고 숫자가 연결되지 않는다면 바로 정답에 더해버리면 된다고 생각한다.
using System;
public class Solution {
public int solution(string my_string) {
int answer = 0;
string numberStack = "";
char[] stringList = my_string.ToCharArray();
for (int k = 0; k < stringList.Length; k++){
if (stringList[k] - 48 > 9) {
if(numberStack != "") {
answer += Convert.ToInt32(numberStack);
numberStack = "";
}
continue;
}
numberStack += stringList[k];
}
if (numberStack != "")
answer += Convert.ToInt32(numberStack);
return answer;
}
}
나름 만족스러운 답이 되었다.
다른 분들이 풀어낸 답 중에는 숫자를 제외한 문자를 특정 문자로 변환하여 Split을 통해 문자열 배열로 나누고 숫자가 들어있는 값들만 연산하는 방법이있었다.
굉장히 작업량이 많은 것 같지만 참신한 방법이라 생각한다.
결과는 굉장히 느린 편이긴 하다.
using System;
using System.Text.RegularExpressions;
public class Solution {
public int solution(string my_string) {
string[] str = Regex.Replace(my_string, @"[^0-9]", " ").Split(' ');
int answer = 0;
int test = 0;
for(int i = 0; i < str.Length; i++)
{
int.TryParse(str[i], out test);
answer += test;
}
return answer;
}
}
이번 문제는 이외에도 굉장히 다양한 방법으로 풀이하신 분들이 많은 것 같다. 서로 중첩된 정답이 거의 없을 정도이다.
다 보기는 힘드니 이정도로 하자....
'코딩테스트 > Programmers' 카테고리의 다른 글
[Programmers] 입문) 이진수 더하기 (Convert.ToInt32) (0) | 2023.07.04 |
---|---|
[Programmers] 입문) 한 번만 등장한 문자 (학습) (0) | 2023.07.03 |
[Prgrammers] 입문) 가까운 수 (이진탐색) (0) | 2023.07.02 |
[Programmers] 입문) k의 개수 (0) | 2023.07.02 |
[Programmers] 입문) A로 B 만들기 (0) | 2023.07.02 |