본문 바로가기

코딩테스트/Coding Bat

[코딩뱃] [자바] Warmup - 1단계 : notString 문제

728x90
728x90

https://codingbat.com/prob/p191914

 

CodingBat Java Warmup-1 notString

Given a string, return a new string where "not " has been added to the front. However, if the string already begins with "not", return the string unchanged. Note: use .equals() to compare 2 strings.

codingbat.com



= 문제 번역 =

문자열이 주어지면 "not"이 앞에 추가된 새 문자열을 반환합니다. 

그러나 문자열이 이미 "not"으로 시작하는 경우 문자열을 변경하지 않고 반환합니다. 

참고: .equals()를 사용하여 2개의 문자열을 비교하십시오.

= 문제푸는 팁 =

substring을 이용해서 푸는 문제인데, 이 문제에서 어느걸 써야되는지 제시해주지를 않아서, 좀 많이 어색했다.

수업시간에 배운 내용이었기에 풀 수 있었지만, 그게 아니었다면 subString을 공부하고 문제를 푸는 것이 나을 것이다.

 

처음에는 not만 같으면 str나오게하려고했는데, substring의 인덱스가 3이 넘지 않을 때도 고려해야해서,

str.length()가 3보다 크다는 가정을 추가로 넣어야했다.

 

= 해설 =

< 1 >
public String notString(String str) {
  if (str.length() >= 3 && str.substring(0, 3).equals("not")) {
    return str;
  	}
  	return "not " + str;
}

< 2 >
public String notString(String str) {
	int len = str.length();

	if (len >= 3) {
		char c1 = str.charAt(0);
		char c2 = str.charAt(1);
		char c3 = str.charAt(2);

		if (c1 == 'n' && c2 == 'o' && c3 == 't') {
				return str;
		}
	}
		return "not " + str;
}

728x90