급할수록도라에몽
GoodmorningSun
급할수록도라에몽
전체 방문자
오늘
어제
  • 🌏Hello World (73)
    • 👨🏻‍💻Computer Science (28)
      • 🙂Java (6)
      • 😊Spring (0)
      • 💻Algorithm (22)
      • 😉JavaScript (0)
      • 😀CSS (0)
      • 😌HTML (0)
    • 📄TIL (3)
    • 📈오늘의 경제 (17)
    • 🌎MyEnglish (18)
      • 😎Lexicon (18)
    • 💻AI (1)
      • 👨🏻‍💻chatGPT (1)
    • ✈️Prague(프라하) (5)
    • 👨🏻‍💻Apple (1)
    • WorldQuant (0)

블로그 메뉴

  • 🔑Github
  • 🔑Tistory

인기 글

태그

  • SVB
  • 체코
  • 딥시크
  • 알고리즘
  • ptp
  • 경제
  • 실리콘밸리 은행
  • ai
  • cardio
  • metabolism
  • Java
  • 팔란티어
  • Cardiovascular
  • PLTR
  • TMF
  • ChatGPT
  • 인플레이션 감축법
  • 피보나치 되돌림
  • Til
  • 혼자공부하는자바
  • eft
  • 영어
  • FOMC
  • 생활코딩
  • 프로그래머스
  • English
  • 미국채권
  • 프라하
  • INTC
  • Prague

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
급할수록도라에몽

GoodmorningSun

[프로그래머스] 가운데 글자 가져오기 - Java
👨🏻‍💻Computer Science/💻Algorithm

[프로그래머스] 가운데 글자 가져오기 - Java

2022. 12. 8. 01:41
728x90

프로그래머스 가운데 글자 가져오기 - Java

Description

  • 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

제한사항

  • s는 길이가 1 이상, 100이하인 스트링입니다.

입출력 예

s return
"abcde" "c"
"qwer" "we"

class Solution {
    public String solution(String s) {
        String answer = "";
        
        int length = s.length();
        if( length % 2 == 0) {
            answer = s.substring((length/2)-1, (length/2)+1);
        } else {
            answer = s.substring((length/2), (length/2)+1);
        }
        
        return answer;
    }
}

👉substring을 모르겠다면 여기 클릭!

 

문자열의 길이를 2로 나눴을 때 나머지가 0이 나오면 문자열이 짝수의 길이라는 것이기 때문에

s.substring((length/2)-1, (length/2)+1);

만약 abcd 라는 문자열이라면 s.substirng(1,3)가 되는 것이므로

👉index 1의 값은 b, index 2의 값은 c 그래서 bc가 출력되게 된다.

 

이것을 이해했다면 전체 코드를 이해하는데 문제가 없을 것 같다!

class Solution {
    public String solution(String s) {
    
        int length = s.length(); //int length 선언
        return (s.length % 2 == 0) ? s.substring((length/2)-1, (length/2)+1): s.substring((length/2), (length/2)+1);
        //삼항연산자로 푼 모습
    }
}

위에서 if문으로 푼 코드를 삼항 연산자로 간단하게 바꾸면 이렇게 된다!

 

class Solution {
    public String solution(String s) {
        String answer = "";
        
        answer = s.substring((s.length()-1)/2, s.length()/2+1);
        
        return answer;
    }
}

정말 간단하게 해결한 다른 사람 풀이인데 코드를 보면

substring() 하나로만 문제를 해결한 모습을 볼 수 있다.

substring 괄호 안에 s.length()/2가 2.5와같은 소수가 나오면 어떡하지 라는 생각이 들 수도 있지만

index는 정수만 나오기 때문에 자동으로 소수 부분은 제거되고 int 형태의 정수만 나오게되어 저렇게 코드를 짜도 되는 것 같다.

 

 

저작자표시

'👨🏻‍💻Computer Science > 💻Algorithm' 카테고리의 다른 글

[프로그래머스] 음양더하기 - Java  (0) 2022.12.14
[프로그래머스] 없는 숫자 더하기 - Java  (0) 2022.12.13
[프로그래머스] 문자열을 정수로 바꾸기 - Java  (2) 2022.12.12
[프로그래머스] 두 정수 사이의 합 - Java  (0) 2022.12.09
[프로그래머스] 짝수와 홀수 - Java  (0) 2022.12.07
    '👨🏻‍💻Computer Science/💻Algorithm' 카테고리의 다른 글
    • [프로그래머스] 없는 숫자 더하기 - Java
    • [프로그래머스] 문자열을 정수로 바꾸기 - Java
    • [프로그래머스] 두 정수 사이의 합 - Java
    • [프로그래머스] 짝수와 홀수 - Java
    급할수록도라에몽
    급할수록도라에몽
    안녕하세요, 반갑습니다:D

    티스토리툴바