본문 바로가기
Algorithm/Problem_프로그래머스

프로그래머스(서울에서 김서방 찾기, 소수 찾기) - Java

by uyoo 2020. 5. 25.

[서울에서 김서방 찾기]

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

 

코딩테스트 연습 - 서울에서 김서방 찾기

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

programmers.co.kr

 

* 로직

  • 문자열 길이만큼 탐색하면서 "Kim"이 있다면 답을 출력한다

 

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

        return answer;
    }
}

 

 

[소수 찾기]

https://programmers.co.kr/learn/courses/30/lessons/12921

 

코딩테스트 연습 - 소수 찾기

1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상

programmers.co.kr

 

* 로직

  • 2부터 n까지 숫자를 탐색한다
  • 해당 숫자가 소수인지 판별한다
    • 판별 시, 2부터 해당 숫자의 제곱근만큼 포문을 돌며 나누어 떨어진다면 소수는 불가하다
    • 나누어 떨어지지 않는다면 소수 가능
  • 소수가 가능하다면 카운팅한다

 

class Solution {
    public int solution(int n) {
        int answer = 0;
        for(int i=2; i<=n; ++i) {
            if(findPrimeNum(i)) answer++;
        }

        return answer;
    }
    
    private static boolean findPrimeNum(int num) {
        for(int i=2; i<=Math.sqrt(num); ++i) {
            if(num % i == 0) return false;
        }

        return true;
    }
}