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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

SELECT name, datetime
FROM animal_ins
ORDER BY animal_id DESC

 

728x90

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

SELECT animal_id, name
FROM animal_ins
WHERE intake_condition = "Sick"
728x90

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

머리를 좀 써야하는 문제입니다. 두가지 풀이가 가능합니다.

 

 

SELECT name
FROM animal_ins
ORDER BY datetime ASC
LIMIT 1

좀 더 쉬운 풀이는 그냥 datetime을 기준으로 정렬하고 LIMIT를 사용해 딱 하나의 row만 출력하는 겁니다.

datetime으로 오름차순 정렬후 맨 위의 row만 출력하기 때문에 당연히 가장 먼저 들어온 동물의 name이 출력됩니다.

 

 

SELECT name
FROM (
    SELECT name, RANK() OVER(ORDER BY datetime ASC) AS date_rank
    FROM animal_ins
    ) AS R
WHERE R.date_rank = 1

조금 더 복잡한 풀이는 datetime을 기준으로 정렬하고, date_rank라는 새로운 column을 RANK()를 통해 만듭니다.

즉 테이블이 동물의 name과 datetime의 순위 두개의 column을 가지게 되고 이 때 date_rank가 1인 row가 가장 먼저 들어온 동물의 정보가 됩니다.

728x90

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

SELECT animal_id, name
FROM animal_ins
WHERE intake_condition != "Aged"
ORDER BY animal_id
728x90

 

https://school.programmers.co.kr/learn/courses/30/lessons/12931?language=python3 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

Java를 사용했다면 조금 더 귀찮게 코드를 짜야 하지만 Python은 문자열 다루기가 편하기 때문에 쉽게 구현할 수 있습니다.

 

def solution(n):
    number = str(n)
    answer = 0
    for i in number:
        answer += int(i)

    return answer
728x90

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

입력 사이즈가 작아서 대충 돌려도 되지만... 약수의 특징을 사용하면 조금 더 효율적인 코드를 짤 수 있습니다.

N의 제곱근을 기준으로 작은 약수와 큰 약수로 나누어 두개를 동시에 찾으면 됩니다.

 

예를 들어 100의 약수를 찾을때, 100의 제곱근은 10입니다.

10보다 작은 100의 약수 1, 2, 4, 5는 각각 100, 50, 25, 20과 대응됩니다.

또 100의 제곱근인 10이 정수이므로 10도 포함할 수 있습니다. 이렇게 약수를 찾는 경우 N이 클 때는 어마어마한 시간차이가 나게 됩니다.

 

class Solution {
    public int solution(int n) {
        int answer = 0;
        int div = 1;
        while(div < Math.sqrt(n)){{
            if(n % div == 0){
                answer += div;
                answer += (n/div);
            }
            div += 1;
        }}
        if(div == Math.sqrt(n)){
            answer += div;
        }
        return answer;
    }
}
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/12944?language=python3 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

def solution(arr):
    answer = sum(arr) / len(arr)
    return answer
728x90

 

class Solution {
    public String solution(int num) {
        if(num % 2 == 0){
            return "Even";
        }else{
            return "Odd";
        }
    }
}

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

프로그래머스 코딩연습에서 안 푼 Lv.1문제들을 좀 해치우겠습니다.

정말 간단한, 어떤 언어를 쓰든 하루만 공부해도 풀 수 있는 문제입니다.

 

 

728x90

+ Recent posts