글
프로그래머스 C# 숨어있는 숫자의 덧셈(2) (48, int.TryParse, char.IsDigit,P,J) char int형 -'0' int형 char형 - 48
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
public class Solution {
public int solution(string my_string) {
my_string += "K";
int answer = 0;
int save = 0;
for(int i = 0; i < my_string.Length; i++)
{
if(char.IsDigit(my_string[i]) == true)
{
save = save * 10 + ((int)my_string[i] - 48);
}
else
{
answer += save;
save = 0;
}
}
return answer;
}
}
///
using System;
public class Solution
{
public int solution(string my_string)
{
int answer = 0;
string temp = String.Empty;
for(int i=0; i<my_string.Length; i++)
{
if (int.TryParse(my_string[i].ToString(), out int num))
temp += num.ToString();
else if (temp != String.Empty)
{
answer += int.Parse(temp);
temp = String.Empty;
}
if(i == my_string.Length - 1 && temp != String.Empty)
answer += int.Parse(temp);
}
return answer;
}
}
int.PryParse(string str, out int result) 는 문자열(string)을 숫자로 변환할 때 사용한다.
str : 변환할 숫자가 포함된 문자열
result : 변환이 성공한 경우 str에 포함된 숫자의 정수 값을 반환하고, 변환이 실패한 경우 0을 반환
int 대신에 double, int32 를 쓸 수도 있다.
파이썬
/////////////////
import re
def solution(my_string):
return sum([int(i) for i in re.findall(r'[0-9]+', my_string)])
////////////
def solution(my_string):
s = ''.join(i if i.isdigit() else ' ' for i in my_string)
return sum(int(i) for i in s.split())
/////////
자바
class Solution {
public int solution(String my_string) {
int answer = 0;
String[] str = my_string.replaceAll("[a-zA-Z]", " ").split(" ");
for(String s : str)
{
if(!s.equals("")) answer += Integer.valueOf(s);
}
return answer;
}
}
/////
import java.util.StringTokenizer;
class Solution {
public int solution(String my_string) {
int answer = 0;
String s = my_string.replaceAll("[^0-9]", " ");
StringTokenizer st = new StringTokenizer(s, " ");
while (st.hasMoreTokens())
{
answer += Integer.parseInt(st.nextToken());
}
return answer;
}
}
//////////////////////
import java.util.*;
class Solution {
public int solution(String myString) {
return Arrays.stream(myString.split("[A-Z|a-z]")).filter(s -> !s.isEmpty()).mapToInt(Integer::parseInt).sum();
}
}
class Solution {
public int solution(String my_string) {
int answer = 0;
String[] str = my_string.split("[a-zA-Z]");
for(int i = 0 ; i < str.length;i++)
{
if(str[i].length() > 0)
answer+=Integer.parseInt(str[i]);
}
return answer;
}
}
'프로그래밍' 카테고리의 다른 글
프로그래머스 C# 잘라서 배열로 저장하기(for문의 활용, P, J) (0) | 2023.01.02 |
---|---|
프로그래머스 C# 공 던지기(주기성 찾기, P, J) (0) | 2023.01.02 |
프로그래머스 C# 이진수 더하기(Convert.ToInt32, Convert.ToString, 이진법, P, J) (0) | 2023.01.01 |
프로그래머스 C# 7의 개수(while문, P, J) (0) | 2023.01.01 |
프로그래머스 C# 한 번만 등장한 문자(Concat, OrderBy, P, J) (0) | 2022.12.31 |