<programmers> 이상한 문자 만들기 자바

2022. 9. 29. 18:38·개발 공부/알고리즘

 

class Solution {
    public String solution(String s) {
        String answer = "";
        String[] arr = s.split(" ", -1); 
        // split 메소드 인자값 -1 을 넣으면 공백도 문자열로 인식 
        // 공백을 기준으로 arr 배열에 s 넣기
        int cnt = 1;
        for (int i = 0; i < arr.length; i++) {
        	for(int j = 0; j < arr[i].length(); j++) {
        		if(j%2 == 0) {
        			answer += arr[i].substring(j, j+1).toUpperCase(); 
                    //배열에 담긴 값들 짝수번째 대문자 변환 
        		} else {
        			answer += arr[i].substring(j, j+1).toLowerCase(); 
                    //배열에 담긴 값들 홀수번째 소문자 변환
        		}
        	}
        	if(cnt != arr.length) { 
                //배열 값들 사이 공백 넣어주기 ex) 길이가 3이면 그사이 공백은 2개이고 3개가 됐을때 if문 종료  
        		answer += " ";
                cnt++;
        	} 
        }
        return answer;
    }
}

 

abc와 abc 사이에는 공백이 3개가 있고 양옆으로 1개씩 있다

위 그림은 각 배열의 값과 길이를 차례대로 출력했다. abc와 abc 사이에는 공백이 3개이지만 배열에 들어가는 값은 2개인 것을 알 수 있다

 

.

 

* 배운 점

split()에 -1 의 인자값을 주면 공백도 배열로 인식한다는 것을 배웠다. 자체적으로 테스트 케이스 사이에 문자열 사이에 공백이 2개 이상 들어갔을 때를 넣어서 실행했는데 -1 안들어가니까 인식을 못했다

https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html#split(java.lang.String)

 

String (Java SE 11 & JDK 11 )

Compares two strings lexicographically. The comparison is based on the Unicode value of each character in the strings. The character sequence represented by this String object is compared lexicographically to the character sequence represented by the argum

docs.oracle.com

왜 -1 을 넣으면 공백도 배열로 인식하는 걸까? API를 찾아보니

If the limit is negative then the pattern will be applied as many times as possible and the array can have any length

대충 해석해보면 만약 limit가 음수인 경우 배열은 가능한 많이 적용되고 어떤 길이도 가질 수 있다고 되어있었다.

그럼 -2 를 넣어도 적용이 될까? 블로그를 뒤져보면 다 -1 만 설명해놓고 이유도 적어 놓지 않았다

 

4-2 를 넣어도 똑같은 실행 값이 나온다!!! 혹시 몰라 -3, -4 다 넣어봤다

즉 -1 만 인식하는게 아니라 음수값을 넣으면 되는 것이다!

이걸 몰라서 실행해보니 테스트 케이스 중에 1개만 안되서 정말 몇시간 내내 삽질하면서 찾아 다녔는데 그래도 풀어서 뿌듯하다  

 

'개발 공부 > 알고리즘' 카테고리의 다른 글

프로그래머스 '네트워크' 자바  (0) 2023.04.18
프로그래머스 '게임 맵 최단거리' 자바  (0) 2023.04.18
프로그래머스 '체육복' 자바  (0) 2023.04.13
<programmers> 약수의 개수와 덧셈 자바  (0) 2022.09.27
<programmers> 정수 내림차순으로 배치하기 - 자바  (0) 2022.09.06
'개발 공부/알고리즘' 카테고리의 다른 글
  • 프로그래머스 '게임 맵 최단거리' 자바
  • 프로그래머스 '체육복' 자바
  • <programmers> 약수의 개수와 덧셈 자바
  • <programmers> 정수 내림차순으로 배치하기 - 자바
코딩숙
코딩숙
개발이라는 끝이 없는 바다 묵묵히 꾸준히 항해하기
  • 코딩숙
    코딩숙
    코딩숙
  • 전체
    오늘
    어제
    • 분류 전체보기 (63)
      • CS 공부 (17)
        • 클라우드 (3)
        • 네트워크 (3)
      • 개발 공부 (40)
        • 오류 해결 (4)
        • 알고리즘 (12)
        • Spring (3)
        • JPA (2)
        • TIL(오늘 내가 배운 것) (9)
        • 코드복습 (1)
        • 디자인 패턴 (1)
      • IT 관련 영상 메모 (1)
      • 데일리피드백 (0)
      • Tools (1)
      • Wishy (이력서 평가 프로젝트) (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    JPA
    innodb
    데이터베이스 백업
    자바
    도메인설계
    appsmith
    키 페어 분실
    programmers #정수 내림차순으로 배치하기
    setter method
    인프런
    게임 맵 최단거리 자바
    http
    getter method
    404 Not Found
    프로그래머스 네트워크 자바
    데이터베이스 손상
    마이크로서비스
    user mode
    개발자
    isBefore()
    데이터 타입
    프로그래머스
    개발공부
    HTTP BODY
    java
    변수
    백준
    isAfter()
    키 페어 변경
    302 Found
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
코딩숙
<programmers> 이상한 문자 만들기 자바
상단으로

티스토리툴바