본문으로 바로가기

📘문제 설명

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

https://school.programmers.co.kr/learn/courses/30/lessons/12919

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 


📌 제한조건

  • seoul은 길이 1 이상, 1000 이하인 배열입니다.
  • seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
  • "Kim"은 반드시 seoul 안에 포함되어 있습니다.

💡 개념 설명

1단계: 배열 탐색 준비 (반복문 설정)

seoul 배열에 있는 모든 이름을 하나씩 확인해야 합니다. 이를 위해 for 반복문을 사용합니다. int i = 0으로 시작하여 배열의 각 위치(인덱스)를 0번부터 차례대로 방문합니다.

2단계: "Kim" 찾기 (조건문으로 확인)

반복문 안에서 현재 확인하고 있는 배열의 요소(seoul[i])가 "Kim"이 맞는지 검사합니다. if (seoul[i].equals("Kim")) 코드가 이 역할을 합니다. 자바에서 문자열의 내용이 같은지 비교할 때는 ==가 아닌 .equals() 메소드를 사용해야 정확합니다.

3단계: 결과 문장 만들기

만약 "Kim"을 찾았다면, 문제에서 요구하는 형식인 "김서방은 x에 있다" 형태의 문장을 만듭니다. 여기서 x는 "Kim"을 찾은 위치(인덱스 i)입니다. 이 문장을 answer 변수에 저장합니다.

4단계: 불필요한 반복 중단

문제의 조건에 따라 "Kim"은 배열에 딱 한 번만 들어있습니다. 따라서 "Kim"을 한 번 찾으면 더 이상 배열을 탐색할 필요가 없으므로, **break;**를 사용해 for 반복문을 즉시 종료합니다. 이는 코드의 효율을 높여줍니다.

5단계: 최종 결과 반환

반복문이 끝나면 "Kim"의 위치 정보가 담긴 answer 변수를 return 키워드를 통해 반환하며 모든 과정이 마무리됩니다.


📎 입출력 예시


📎 코드

import java.util.*;public class Solution {    public int solution(int n) {        int answer = 0;        while (n > 0) {            answer += n % 10;            n /= 10;        }        return answer;    }    public static void main(String[] args) {        Solution s = new Solution();        int result1 = s.solution(123); // 1 + 2 + 3 = 6        int result2 = s.solution(987); // 9 + 8 + 7 = 24        System.out.println("123 ➝ " + result1); // 6 출력        System.out.println("987 ➝ " + result2); // 24 출력    }}

 


📎 결과