본문 바로가기
TIL

12.18 (TIL-코딩문제)

by 오랑이귀엽다 2023. 12. 18.

두 정수 사이의 합

 

나의 풀이

더보기

public class Solution {
    public long solution(int a, int b) {
        long answer = 0;
        
        if( a < b)
        {
            for(int i=a; i<=b; i++)
            {
                answer += i;
            }    
        }
        else
        {
            for(int i=a; i>=b; i--)
            {
                answer += i;
            }    
        }
        return answer;
    }
}

 

다른사람의 풀이

더보기
using System;
public class Solution {
    public long solution(int a, int b) {
       long answer = 0;

          return ((long)(Math.Abs(a - b) + 1) * (a + b)) / 2;
    }
}

 

콜라츠 추측

 

나의 풀이

더보기

public class Solution {
    // Collatz 추측에 따라 주어진 수가 몇 번의 반복 끝에 1이 되는지 확인하는 함수
    public int solution(int num) {
        int answer = 0; // 결과값 초기화
        long temp = num; // 주어진 수를 저장할 변수

        // 최대 500번의 반복으로 수행
        for(int i = 0; i <= 500; i++) {
            // 주어진 수가 1이 되면 반복 횟수인 i를 반환하고 함수 종료
            if(temp == 1) {
                return i;
            }
            
            // Collatz 추측에 따라 주어진 수를 다음 값으로 업데이트
            temp = temp % 2 == 0 ? temp / 2 : temp * 3 + 1;

            // 삼항 연산자는 조건식을 평가하여 참(true)이면 temp / 2를 실행하고 거짓(false)이면 temp * 3 + 1을 실행

            // temp가 짝수인 경우에는 temp를 2로 나눈 값으로 업데이트하고, 홀수인 경우에는 temp에 3을 곱하고 1을 더한 값을 업데이트
        }

        // 500번의 반복 후에도 1이 되지 않으면 -1을 반환
        answer = -1;
        return answer;
    }
}

 

다른사람 풀이

더보기

 

public class Solution {
    public int solution(int num) {
        int answer = 0;
        long numLong = num;
        for(int i=0;i<=500;i++)
        {
            if(numLong == 1)
            {
                return i;
            }
            if(numLong%2 == 0)
            {
                numLong = numLong/2;
            } else
            {
                numLong = numLong * 3 + 1;
            }

        }
        return -1;
    }
}

 

서울에서 김서방 찾기

 

나의 풀이

더보기

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

 

다른사람 풀이

더보기
using System;

public class Solution {
    public string solution(string[] seoul) {
        int answer = 0;


        answer = Array.FindIndex(seoul, i => i == "Kim");


        return string.Format("김서방은 {0}에 있다",answer);
    }
}

'TIL' 카테고리의 다른 글

12.20 (TIL - Unity)  (1) 2023.12.20
12.19 (TIL-Unity3D)  (0) 2023.12.19
12.15 (TIL-Unity3D)  (0) 2023.12.15
12.14 (TIL - Unity)  (0) 2023.12.14
12.13 (TIL - Unity)  (0) 2023.12.13