프로그래머스/level 1

[프로그래머스] 서울에서 김서방 찾기

binaryJournalist 2021. 8. 23. 18:14
반응형

 

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

 

 

 

 

 

 

** Javascript

 

 

function solution(seoul) {
    return `김서방은 ${seoul.indexOf("Kim")}에 있다`;
}

 

 

노마드코더가 알려준 sexy javascript backticks 사용!

 

 

 

** Python

 

 

파이썬은 세 가지 방법이 있다. 방법마다 특징이 있다.

 

 

1)

 

 

def solution(seoul):
    return "김서방은 " + str(seoul.index("Kim")) + "에 있다"

 

- 속도가 가장 빠름

- 메모리 가장 적게 차지함

 

 

 

2)

 

def solution(seoul):
    return ('김서방은 %d에 있다' %seoul.index('Kim'))

 

 

- 속도가 가장 느림

- 메모리 두번째로 적게 잡아 먹음

 

 

 

3) 

 

def solution(seoul):
    return "김서방은 {}에 있다".format(seoul.index('Kim'))

 

 

- 속도는 두 번째

- 메모리 가장 많이 잡아 먹음

 

 

 

 

 

 

** Java

 

 

Java도 세 가지 방법이 있고 각 방법마다 특징이 있다.

 

 

1)

 

import java.util.*;
class Solution {
    public String solution(String[] seoul) {
        return "김서방은 " + Arrays.asList(seoul).indexOf("Kim") + "에 있다";
    }
}

 

- 시간 오래 걸림

- 메모리도 전반적으로 많이 차지함

 

 

 

2)

 

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

 

 

- 속도 제일 느림

- 메모리는 1보다는 나으나 그래도 많이 차지함

 

 

 

 

 

 

3) 

 

import java.util.*;
class Solution {
    public String solution(String[] seoul) {
        return String.format("김서방은 %d에 있다", Arrays.asList(seoul).indexOf("Kim"));
    }
}

 

- 셋 중 가장 빠름

- 메모리도 전반적으로 셋 중 덜 차지함

 

 

 

 

4) (번외) 2와 3을 활용

 

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

 

 

- 속도 준수하나 3번보다는 느림

- 메모리는 3번과 비슷

 

 

반응형