-
프로그래머스 #가운데 글자 가져오기프로그래머스 2022. 5. 12. 22:15
https://programmers.co.kr/learn/courses/30/lessons/12903
코딩테스트 연습 - 가운데 글자 가져오기
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret
programmers.co.kr
해결 방안
1. split메소드로 주어진 문자열을 배열에 넣는다
2. 문자열의 길이가 짝수인지 홀수인지 판단
3-1) 짝수일 경우 answer = array[문자열길이/2-1] + array[문자열길이/2]
3-2) 홀수일 경우 answer = array[문자열길이/2]
-> int 타입 연산의 경우 소수점 자리가 버림 되기 때문에 문자열길이/2를 했을 때 올바른 자리를 찾을 수 있다.
ex) abcde = 5자리 문자열 => 5/2 = 2.5 => 소수점 이하는 버림됨 = 2 => 배열[2] 는 c
class Solution { public String solution(String s) { String answer = ""; String[] arr = s.split(""); if(s.length()%2==0) { //문자열의 길이가 짝수인경우 answer += arr[s.length()/2-1]; answer += arr[s.length()/2]; } else { answer += arr[s.length()/2]; } return answer; } }
생각해보기
같은 방식으로 char[] arr = s.toCharArray(); 도 가능하다
단 속도가 안나옴
-다른 사람의 풀이 최상단에 있는 풀이는 substring() 메소드를 이용한 한줄짜리 코드였다
class Solution { public String solution(String s) { return s.substring((s.length()-1) / 2, s.length()/2 + 1); } }
substring 메소드는 원하는 곳까지 잘라주는 메소드로
substring(int i) 혹은 substring(int i, int j) 의 형태로 사용할 수 있다.
substring(int i) 는 index i번째부터 그 이후 모든 문자를 검색한다.
substring(int i, int j) 는 index i번째부터 j번째 바로 전(=j-1)까지 문자를 검색한다.
String s = 'Hello world' a = s.substring(4); // index 4번 문자부터 저장 : a = "o world" b = s.substring(2,7); //index 2번 ~ 7번 문자까지 저장 : b = "llo w"
indexOf() 메소드를 이용하면 원하는 문자열부터 검색할 수 있다.
String k = "안녕하세요 오늘의 날씨는 맑음입니다. "; String a = k.substring(k.indexOf('는')+2, k.indexOf('입')); //indexOf('는') = 13, indexOf('입') = 17 이므로 //k.substring(k.indexOf('는')+2, k.indexOf('입')) //= k.substring(15, 17) 이므로 index가 15,16 인 문자가 검색된다. //따라서 a = "맑음"
21-11-09 클래스와 메소드 (String, Wapper, Calendar, DateFormat)
String 클래스의 메소드 1) charAt(); : String 문자열의 (index) 번째 글자를 찾는다. String n = "0123456789"; char c1 = n.charAt(0); char c2 = n.charAt(5); System.out.println("3. " + c1 + " " + c2); //..
omp14.tistory.com
'프로그래머스' 카테고리의 다른 글
프로그래머스 #최소직사각형 (0) 2022.05.22 프로그래머스 #같은 숫자는 싫어 (0) 2022.05.08 프로그래머스 #약수의 개수와 덧셈 (0) 2022.05.08 프로그래머스 #2016년 (0) 2022.05.06 프로그래머스 #내적 (0) 2022.05.06