처음에 사용했던 방법은 배열에서 위치를 index로 반환하는 메소드를 이용하는 것이다.
indexOf는 List로 배열을 변환하여 사용해야 한다.
import java.util.Arrays;
class Solution {
public String solution(String[] seoul) {
String answer = "";
//indexOf를 사용하기 위해 배열을 List로 변환해야 함
answer = "김서방은 " + Arrays.asList(seoul).indexOf("Kim") + "에 있다";
return answer;
}
}
다른 방법으로는 for문을 이용해서 배열의 위치별로 값을 비교하는 방법이 있다.
+ 처리 시간은 대체로 위에 배열로 푼 방법이 덜 걸린다. Loop가 생각보다 시간을 많이 잡아먹는 편인것 같다.
import java.util.Arrays;
class Solution {
public String solution(String[] seoul) {
String answer = "";
for (int i = 0; i < seoul.length; i++) {
if (seoul[i].equals("Kim")) {
int x = i;
answer = "김서방은 " + x + "에 있다";
break;
}
}
return answer;
}
}
==과 equals()의 차이 (참고: https://coding-factory.tistory.com/536)
- == : 두 대상의 주소값을 비교.
- int, char는 대상에 주소값을 가지지 않는 형태로 사용되기 때문에 ==로 비교 가능.
- equals() : String 클래스의 메소드로. 비교하고자 하는 두 대상의 값 자체를 비교.
- String은 일반적인 타입이 아니라 클래스
- 클래스는 기본적으로 생성 시 주소값이 부여됨
- 따라서 같은 값을 부여하더라도 서로간의 주소값이 다름.
'Language > JAVA' 카테고리의 다른 글
[프로그래머스] 완주하지 못한 선수 (0) | 2022.01.17 |
---|---|
[프로그래머스] 수박수박수박수박수박수? (0) | 2022.01.17 |
[프로그래머스] 문자열 다루기 기본 (0) | 2022.01.17 |
#char (0) | 2022.01.17 |
#ArrayList + List (0) | 2022.01.17 |