1 분 소요

Lv 0

문제 푸는건 5초 정리는 10분…

  • 하루 시작은 알고리즘 한 문제 풀기로 시작
  • 자바가 특히 헷갈려서 언어에 익숙해질겸 lv_0부터 다시 하는게 나을 듯
  • 어차피 기본기가 안되면 뭘 배워도 응용이 안됨

  • 문제 -> https://school.programmers.co.kr/learn/courses/30/lessons/120831

Java

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

        return answer;
    }
}
// 다른사람풀이 

정리

  • pass

Python

# 내가 푼 답 (틀림)
def solution(n):
    return sum([x+1 for x in range(n+1)if x%2])

(수정)
def solution(n):
    return sum([x for x in range(n+1) if x%2 == 0])
    
# 다른 사람 풀이 1
def solution(n):
    return sum([i for i in range(2, n + 1, 2)])

정리

  • 조건부분을 좀 더 정확하게 쓰자.
  • range 에서 그냥 조건을 걸어두면 if 문을 사용할 필요가 없었다.

JavaScript

// 내가 푼 답
function solution(n) {
    var answer = 0;
    for(i=0; i<n+1; i++){
        if(i%2 == 0){
            answer += i       
        }
    }
    return answer;
}
// 다른 사람 풀이1
function solution(n) {
    var half = Math.floor(n/2);
    return half*(half+1);
}
// 다른 사람 풀이2
function solution(n) {
    var answer = 0;

    for(let i=2 ; i<=n ; i+=2)
        answer += i;

    return answer;
}

정리

  • 풀이 2를 보면 if문이 따로 실행 될 이유가 없으니 더 좋은 코드라고 생각된다.

출처 : 프로그래머스,

댓글남기기