본문 바로가기

Algorithm/기타(기업등)

[CodingBat/Java] missingChar

728x90

 

링크

https://codingbat.com/prob/p190570

 

CodingBat Java Warmup-1 missingChar

Given a non-empty string and an int n, return a new string where the char at index n has been removed. The value of n will be a valid index of a char in the original string (i.e. n will be in the range 0..str.length()-1 inclusive).missingChar("kitten", 1)

codingbat.com

 

문제

문자열과 문자열 인덱스가 주어지면, 해당 인덱스의 문자를 제거해서 반환하는 함수를 만들어라.

 

 

풀이

딱히 아이디어는 없는 문제 

그냥 여러 알고리즘 문제를 풀 때 사용될 일이 많을 것 같으므로, 여러 방법을 알아보는데 의의를 일단 둠 

 

방법

1. StringBuilder 클래스의 deleteCharAt 메소드

public String missingChar(String str, int n) {
  
  StringBuilder str2 = new StringBuilder(str);
  str2 = str2.deleteCharAt(n);
  
  return str2.toString();
}

주의 : StringBuilder 클래스의 메소드 이므로,

String -> StringBuilder클래스로 변경해야 해당 메소드를 사용할 수 있으며,

return이 String타입으로 정해져 있으므로, StringBuilder클래스의 toString()으로 다시 String으로 변경해 리턴해야한다

<StringBuilder 클래스의 메소드>

 

 

2.  replace

char -> char 

String -> String 2가지 존재

 

char -> char

사이트에서 인식을 잘 못하나..?

 

String -> String

charAt은 리턴값이 char형이므로, 변환이 필요

1.String 클래스의 메소드 String.valueOf(해당 타입)

public String missingChar(String str, int n) {
  
  String c = String.valueOf(str.charAt(n));
  
  str = str.replace(c, "");
  
  return str;
}

 

 

2. Character형의 함수 toString

public String missingChar(String str, int n) {
  
  char c = str.charAt(n);
  
  str = str.replace(Character.toString(c), "");
  
  return str;
}

 

 

3.substring이용

매개변수 하나(n): n인덱스부터 끝까지 

매개변수 두개(a, b) : a 인덱스부터 b-1인덱스 까지 

ex) 

str.substring(2) + str.substring(0,2) 인 경우,

hello -> llo(2 인덱스부터 끝까지) he (0인덱스부터 2-1 인덱스까지) 

 

 

public String missingChar(String str, int n) {
  
  str = str.substring(0,n)+str.substring(n+1);

  return str;
}

 

 

<참고자료>

자바8 공식문서

https://docs.oracle.com/javase/8/docs/api/

 

Java Platform SE 8

 

docs.oracle.com

 

728x90

'Algorithm > 기타(기업등)' 카테고리의 다른 글

[CodingBat/Java] countXX  (0) 2021.09.30
[CodingBat/Java] front22  (0) 2021.09.30
[SAP/C++] BST from postorder  (0) 2021.04.24
[SAP/C++] Mirror Tree  (0) 2021.04.24
[SAP/C++] reversed Linked List  (0) 2021.04.24