문자열 다구리 , 약수의 개수 구하고 더하기 ,JadenCase

DeadWhale·2022년 10월 12일
0

프로그래머스

목록 보기
13/21

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.

import java.util.*;
class Solution {
 public boolean solution(String s) {
        return s.matches("^[0-9]{4}|[0-9]{6}$");
    }
}

기본적으로 문자열을 탐색하는 문자였는데.
정규식을 사용하면 매우 편할것 같다 기억을 더듬어 matches를 찾아내서 해결했다

이런식이 아니면
1. 문자열의 길이가 4, 6이 아닐경우 false 반환
2. 문자열을 배열로 나눠 하나씩 탐색하며 int가 아닐경우 반환 하는 식으로 구현 했을 것 같다.



두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.

class Solution {
    public int solution(int left, int right) {
    
  int answer =0;
  for(int i= left; i<=right;i++){
      int count =0;
      for(int j=1; j<=i; j++){
          if(i%j==0) count++;
      }


       if(count%2==0) answer += i;
       else      	    answer -= i;	
  }

          return answer;
      }
}

약수의 개수를 계산한 다음 연산하는 문제였는데.

i값을 더하는거였는데 약수를 더해서 이상한 수가 나와 시간을 좀 버렸다...
문제를 제대로 읽자.



JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고)
문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요.


class Solution {
    public String solution(String s) {
        String[] arr= s.toLowerCase().split("");
		StringBuffer sb = new StringBuffer();
		
		boolean flag = true;
		for(String ss : arr){
			if(flag) ss= ss.toUpperCase();
			sb.append(ss);
			
			if(ss.equals(" ")) flag = true;
			else                 flag=false;  
			
		}
        return sb.toString();
    }
}

0개의 댓글