2022년 2월 23일 수요일

Codility - 코딩테스트 기록용 4일차

 FrogJmp

Count minimal number of jumps from position X to Y.
int값 세개 , X, Y, D값을 입력받아
X의 위치에서 Y까지 D만큼씩 이동했을떄 몇번 이동해야하는지 구하는 문제
 - 내가 푼 코드
public static int solution(int X, int Y, int D) {
int result = ((Y - X) / D) ;
int cha = ((Y - X) % D);
if(cha > 0) {
result++;
}
if(X >= Y) {
result = 0;
}
return result;
}

- 다른사람이 푼 코드 
public int solution(int X, int Y, int D) {
        if(X == Y) return 0;
     return (Y-X)%D == 0? (Y-X)/D : (Y-X)/D + 1;
}
결국 똑같은거지? 

- Swift 버전

func solution(X:Int, Y:Int, D:Int) -> Int{

    var result = (Y-X)/D

    let cha = (Y-X)%D

    if cha > 0{

        result += 1

    }

    

    if X >= Y{

        result = 0

    }

    return result;

}

2022년 2월 3일 목요일

Codility - 코딩테스트 기록용 3일차

 OddOccurrencesInArray

-Find value that occurs in odd number of elements.

N개의 배열에서 짝을 이루지 않는 값을 찾아내기

프로그래머스에서 몇개 풀고왔는데 비슷한 문제가 나왔다

Map을 사용해서 getOrDefault함수를 사용했다

그리고 마지막엔 나머지값이 1인 값을 찾아내기!

public int solution(int[] A) { // write your code in Java SE 8 Map<Integer, Integer> map = new HashMap<>(); for(int i=0; i<A.length; i++){ map.put(A[i], map.getOrDefault(A[i], 0) + 1); } for(int key : map.keySet()){ if(map.get(key) % 2 == 1) {

                return key;

            }

} return -1; }

다른사람이 짠 코드도 비슷하다

하하 이번엔 비슷했다.

SWIFT버전

public func solution(_ A : inout [Int]) -> Int {
    // write your code in Swift 4.2.1 (Linux)
    var map = Dictionary<Int, Int>();

    A.forEach { index in
    map[index] = (map[index, default: 0]) + 1
    }
    
    var result = -1
    map.forEach { (key: Int, value: Int) in
        if(value % 2 == 1){
            result = key
        }
    
    }
    return result
}