코딩테스트(Level 0~1)

[JAVA, Programmers] 서울에서 김서방 찾기(자바)

justdoIT0730 2022. 11. 20. 18:11
728x90
728x90

1. 문제 설명

String 배열 seoul element "Kim" 위치 x 찾아, "김서방은 x 있다" String 반환하는 함수, solution 완성하세요. seoul "Kim" 오직 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.

 

2. 제한 사항

seoul 길이 1 이상, 1000 이하인 배열입니다.

seoul 원소는 길이 1 이상, 20 이하인 문자열입니다.

"Kim" 반드시 seoul 안에 포함되어 있습니다.

 

3. 입출력

seoul return
["Jane", "Kim"] "김서방은 1 있다"

 

class Solution {
    public String solution(String[] seoul) {
        String answer = "";
        
        for(int i =0; i<seoul.length; i++){
            if(seoul[i].equals("Kim")){		//1
                answer ="김서방은 "+i+"에 있다";
            }
        }        
        return answer;
    }
}

 

//1

문자열 비교 : == vs equals

더보기

String 변수 생성 방법 2가지 

1. 리터럴을 이용한 방식

2. new 연산자를 이용한 방식

 

ex)

String str1 = "apple";

String str2 = "apple";

String str3 = new String ("example");

String str4 = new String ("example");

String 저장 도식화

주소값 비교(==)와 값 비교(equals)

 

== 연산자는 비교하고자 하는 두 개의 대상의 주소값을 비교하는데 반해

String클래스의 equals 메소드는 비교하고자 하는 두 개의 대상의 값 자체를 비교한다는 것입니다.

 

 기본 타입의 int형, char형등은 Call by Value 형태로 기본적으로 대상에 주소값을 가지지 않는 형태로 사용됩니다.

 하지만 String은 일반적인 타입이 아니라 클래스입니다. 클래스는 기본적으로 Call by Reference형태로 생성 시 주소값이 부여됩니다. 그렇기에 String타입을 선언했을때는 같은 값을 부여하더라도 서로간의 주소값이 다릅니다.

 

 

[출처]

https://coding-factory.tistory.com/536

 

[Java] 문자열 비교하기 == , equals() 의 차이점

Java에서 int와 boolean과 같은 일반적인 데이터 타입의 비교는 ==이라는 연산자를 사용하여 비교합니다. 하지만 String처럼 Class의 값을 비교할때는 ==이 아닌 equals()라는 메소드를 사용하여 비교를 합

coding-factory.tistory.com

 

728x90
728x90