문제 풀이 (JAVA)

class Solution {
    public int solution(int n) {
        int answer =0;
        for(int i=1; i<n; i++){ // 1부터 n보다 작을동안 반복
            if(n%i==1){ // i번째 숫자가 나머지가 1일경우 for문 중단
                answer=i; // 결과값 저장
                break;
            }
        }
        return answer;
    }
}

주요 핵심 포인트

1. i번째 수가 나머지 1일경우 가장 첫번째 작은 숫자값으로 결과값 저장후 for문을 중단한다.

'프로그래머스(JAVA)' 카테고리의 다른 글

2016년  (0) 2022.05.21
최소직사각형  (0) 2022.04.24
부족한 금액 계산하기  (0) 2022.04.24
[1차] 비밀지도  (0) 2022.04.24
가운데 글자 가져오기  (0) 2022.04.24

문제 풀이 (JAVA)

class Solution {
    public long solution(int price, int money, int count) {
        long answer = 0; // 부족하지 않을경우 기본적으로 0 저장

        long sum=0; // 가격 총합 변수
        for(int i=1; i<=count; i++){
            sum+=(long)price*i; // 이용한 반복 횟수만큼 가격에 곱한다.
        }
        if(sum>money){ // count만큼 이용했을때의 비용이 소지금 money보다 크다면
            answer=(long)sum-(long)money; // 부족한 금액 저장
        }
        return answer;
    }
}

주요 핵심 포인트

1.  기본적으로 이용가격이 소지금액보다 작다면 0을 반환한다.

2. 이용가격이 소지금액보다 클경우 부족한 금액을 반환한다.

'프로그래머스(JAVA)' 카테고리의 다른 글

최소직사각형  (0) 2022.04.24
나머지가 1이 되는 수 찾기  (0) 2022.04.24
[1차] 비밀지도  (0) 2022.04.24
가운데 글자 가져오기  (0) 2022.04.24
[1차]다트 게임  (0) 2022.04.24

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

 

코딩테스트 연습 - [1차] 비밀지도

비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다

programmers.co.kr

문제 풀이 (JAVA)

class Solution {
    public String[] solution(int n, int[] arr1, int[] arr2) {
        String[] answer = new String[n];
        for (int i = 0; i < n; i++) {
            answer[i] = Integer.toBinaryString(arr1[i] | arr2[i]); // 비트연산자 '|' 는 OR로 두 숫자를 연산하여 이진수 문자열로 저장한다.
            answer[i] = answer[i].replace('0', ' '); // 이진문자열 0을 공백문자 스페이스로 치환한다.  
            answer[i] = answer[i].replace('1', '#'); // 이진문자열 1을 #으로 치환한다.

            while(answer[i].length() < n) { // 문자열의 길이가 정사각형 길이 n보다 작다면
                answer[i] = ' ' + answer[i]; // 문자열의 길이가 같아질때까지 공백 추가
            }
        }
        return answer;
    }
}

주요 핵심 포인트

1.  비트연산자 OR 를 사용하여 이진문자열로 저장하였다.

2. 문자열의 길이가 N보다 작은 이유는 5의 경우 이진숫자열 101로 저장되기 때문에, N이 5라면 00101로 저장하여야 되기 때문에 문자열의 길이가 같아질때까지 왼쪽에 공백을 추가하여 저장하여야 오류가 발생하지 않는다.

 

리뷰

: toBinaryString을 사용하여 이진문자열로 저장할수 있다는 것을 알았고, 비트연산자를 통해 손쉽게 이진수를 비교하는 방법을 알았다. 이진문자열이 공백을 채워주지 않기 때문에 반복문을 사용해 n개만큼의 공백을 채워줘야 한다는 것을 뒤늦게야 깨달았다. 앞으로 더 노력하자.

'프로그래머스(JAVA)' 카테고리의 다른 글

나머지가 1이 되는 수 찾기  (0) 2022.04.24
부족한 금액 계산하기  (0) 2022.04.24
가운데 글자 가져오기  (0) 2022.04.24
[1차]다트 게임  (0) 2022.04.24
같은 숫자는 싫어  (0) 2022.04.24

문제 풀이 (JAVA)

class Solution {
    public String solution(String s) {
        String answer = "";
        int len=s.length();
        if(len %2==0){ // 문자열 길이가 짝수일때
            answer=s.substring(len/2-1,len/2+1); // 두개 숫자 저장
        }else if(len %2==1){ // 문자열 길이가 홀수일때
            answer=Character.toString(s.charAt(len/2)); // 가운데 숫자 저장
        }
        return answer;
    }
}

주요 핵심 포인트

1. 문자열 길이를 len 변수에 저장하고, len을 2로 나눠 나머지가 0이면 문자열의 갯수는 짝수, 1이라면 홀수 개임을 판별하였다.

2. 홀수일때는 중앙 숫자만 저장, 짝수일때는 2개의 숫자를 저장하여 출력하였다.

'프로그래머스(JAVA)' 카테고리의 다른 글

부족한 금액 계산하기  (0) 2022.04.24
[1차] 비밀지도  (0) 2022.04.24
[1차]다트 게임  (0) 2022.04.24
같은 숫자는 싫어  (0) 2022.04.24
나누어 떨어지는 숫자 배열  (0) 2022.04.24

+ Recent posts