Java & Spring/Java Algorithm

[JAVA][์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ด์ง„๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜

Rainbow๐ŸŒˆCoder 2022. 12. 27. 23:48
728x90

JAVA

public class App {
    public static void main(String[] args) throws Exception {
        //[1] Input
        int [] numbers = {1,2,3,4,5,6,7,8,9,10,11,12}; //์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ๋˜์—ˆ๋‹ค๊ณ  ๊ฐ€์ •
        int N = numbers.length; //์˜์‚ฌ์ฝ”๋“œ
        int search = 7;//๊ฒ€์ƒ‰ํ•  ๋ฐ์ดํ„ฐ
        boolean flag = false; //์ฐพ์•˜์œผ๋ฉด true
        int index = -1; //์ฐพ์€ ์œ„์น˜(์ธ๋ฑ์Šค)
        //[2] Process : ์ด์ง„ ๊ฒ€์ƒ‰ (Binary Search)
        int min = 0;
        int max = N - 1;
        while (min <= max) {
            int mid = max + min / 2;
            if (numbers[mid] == search) {
                flag = true;
                index = mid;
                break;
            } else if (numbers[mid] < search) {
                min = mid + 1;
            } else if (numbers[mid] > search) {
                max = mid - 1;
            }
        }
        //[3] Output
        if(flag) {
            System.out.println(search+"๋ฅผ"+ index +"์œ„์น˜์—์„œ ์ฐพ๋‹ค!");
        } else {
            System.out.println("์ฐพ์ง€ ๋ชปํ–ˆ๋‹ค!");
        }
    }
}

 

ํŒŒ์ด์ฌ

def main():
    #[1] Input
    data = [1,2,3,4,5,6,7,8,9,10]
    N = len(data) #์˜์‚ฌ์ฝ”๋“œ
    search = 7
    min = 0
    max = N-1
    flag = False
    index = -1
    #[2] Process
    while min <= max:
        mid = int((min+max)/2)
        if data[mid] == search:
            flag = True
            index = mid
            break
        if data[mid] > search:
            max = mid -1
        if data[mid] < search:
            min = mid + 1

    #[3] Output
    if flag:
        print(f"{search}์˜ ์ธ๋ฑ์Šค๋Š” {index}")

if __name__ == '__main__':
    main()
728x90