반응형

 

 

안녕하세요 Jin's 입니다.

 

백준 알고리즘의 수학2 중 직사각형에서 탈출 ( 문제 번호 : 1085 )의 소스입니다.

 

 

Java와 Python 두가지 버전 소스입니다.

 

문제가 되게 심플한데 여기서 경계해야할 점은 직사각형의 경계는 중심축(빨간 굵은 선)도 포함이라는 점이다

(w-x,0)이 (x,0) 보다 클 수 있다는 점을 포함하여 코딩하면 된다. 

 

1) JAVA

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int x = scan.nextInt();
		int y = scan.nextInt();
		int w = scan.nextInt();
		int h = scan.nextInt();
		scan.close();
		int x_min = Math.min(w-x, x);
		int y_min = Math.min(h-y, y);
		if(x_min>y_min){
			System.out.println(y_min);
		}else{
			System.out.println(x_min);
		}
	}

}

 

2) PYTHON

x, y, w, h = map(int, input().split())
x_min = min(x, w-x)
y_min = min(y, h-y)
if x_min < y_min:
    print(x_min)
else:
    print(y_min)

 

여러분도 한번 풀어보세요!

 

 

반응형
반응형

 

안녕하세요 Jin's 입니다.

 

지난 주말에 방문해서 먹어본 비스트로사랑방 리뷰입니다.

인스타에서 검색하다가 알게되었는데 3색파스타 비주얼에 반해 가게 되었어요ㅎㅎ

 

비스트로, 사랑방 외관은 이렇게 생겼어요

저같이 길치이신 분들을 위해 찍어두었습니다 ㅎㅎ

 

그리고 제일 중요한 비스트로사랑방의 메뉴판입니다.

 

내부는 화이트와 원목으로 이뻤어요

벽 한편에 오늘의 파스타도 적혀있었습니다.

 

저는 커플 B SET에 3색 파스타와 감자 베이컨 크림 뇨끼와 시저샐러드를 주문해서 먹었습니다.

사실 스테이크도 먹고싶었지만 2명이라 못먹고 돌아왔네요 ㅠㅠ

 

그리고 시저샐러드는 와사비시저드레싱을 사용한다고 메뉴판에 써져있는 것과 같이 약간의 와사비 맛이 났어요

와사비 거부감 있으시면 다른샐러드 드시는게 좋을거 같아요!

저는 와사비를 아주 약간 먹을 수 있어서 낯설게 신기하다 하면서 먹었어요ㅎㅎ

 

그리고 뇨끼를 처음 먹어보게 되었는데 감자전이 엄청 부드러워진 맛? 쫀득하면서도 맛있었어요ㅎㅎ

그리고 대망의 3색 파스타 처음엔 토마토소스에 한번, 바질소스에 한번 비벼먹다가

마지막에 모든 소스 섞어먹었는데 진짜 맛있었어요ㅋㅋㅋ 

비주얼은 별로였지만 궁금하신 분들은 꼭 다 섞어서 드셔보세요 맛있어요ㅎㅎ

 

오랜만에 합정쪽에서 맛있는 저녁을 먹었어 기분이 진짜 좋았었습니다ㅎㅎ

 

 

마지막으로 비스트로사랑방의 위치입니다. 참고하세요~

 

반응형
반응형

 

 

안녕하세요 Jin's 입니다.

 

백준 알고리즘의 수학2 중 골드바흐의 추측 ( 문제 번호 : 9020 )의 소스입니다.

 

 

Java와 Python 두가지 버전 소스입니다.

 

예시 ) 4  : 1 2 4

        12 : 1 2 3 4 6 12

* 제곱근의 루트보다 작은 수일때 약수가 존재하지 않는다면 소수이므로 찾는 범위를 반으로 줄여 시간을 줄일 수 있다. 

* 2n의 범위까지 나오는 소수들을 미리 구한 뒤 소수의 개수를 더해주는게 시간을 줄일 수 있다.

  반복해서 사용하게 될 경우 그때 그때 다시 계산해줄 필요가 없으므로 자바 또한 이러한 방식으로 바꿔서 풀면

  좋을 것 같다

* 이 문제의 포인트는 두 소수 차이가 적은 값을 구하는 것이다.

 

1) JAVA

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		boolean[] num_list = new boolean[10001];
		for(int i=2; i<=10000; i++){
			int result = 0;
			int half = (int)Math.sqrt(i);
			if(i==1) result++;

			for(int j=2; j<=half; j++){
				if(i%j==0){
					result++;
					num_list[i]=false;
					break;
				}
			}
			
			if(result==0){
				num_list[i]=true;
			}
		}

		int t = scan.nextInt();
		for(int i=0; i<t; i++){
			int n = scan.nextInt();
			int k = n;
			int diff =n;
			for(int j=2; j<=n/2; j++){
				if(num_list[j] && num_list[n-j]){
					if(diff > (n-2*j)){
						k=j;
						diff = n-2*j;
					}
				}
			}

			System.out.println(k+" "+(n-k));
		}
		scan.close();
	}

}

 

2) PYTHON

import math
k = 10001
num_list = [True]*k
for i in range(1, k):
    if i == 1:
        continue
    for k in range(2, int(math.sqrt(i))+1):
        if i % k == 0:
            num_list[i] = False
            break

t = int(input())
for _ in range(t):
    n = int(input())
    k = n
    diff = n
    for i in range(2, n//2 + 1):
        if num_list[i] and num_list[n-i] and diff > (n-2*i):
            k = i
            diff = n-2*i
    print(k, n-k, end=" ")

 

여러분도 한번 풀어보세요!

 

 

 

반응형
반응형

안녕하세요 Jin's 입니다.

 

백준 알고리즘의 수학2 중 베르트랑 공준 ( 문제 번호 : 4948 )의 소스입니다.

 

 

Java와 Python 두가지 버전 소스입니다.

 

예시 ) 4  : 1 2 4

        12 : 1 2 3 4 6 12

* 제곱근의 루트보다 작은 수일때 약수가 존재하지 않는다면 소수이므로 찾는 범위를 반으로 줄여 시간을 줄일 수 있다. 

 

1) JAVA

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		while(true){
			int n = scan.nextInt();
			int cnt = 0;
			if(n==0) break;
			
			for(int i=n+1; i<=2*n; i++){
				int result = 0;
				int half = (int)Math.sqrt(i);
				if(i==1) result++;

				for(int j=2; j<=half; j++){
					if(i%j==0){
						result++;
						break;
					}
				}
				
				if(result==0){
					cnt++;
				}
			}
			System.out.println(cnt);
		}
		scan.close();
	}

}

 

2) PYTHON

   * 파이썬은 자바처럼 해결하게 될 경우 시간 초과가 뜨게 된다.

     따라서 2n의 범위까지 나오는 소수들을 미리 구한 뒤 소수의 개수를 더해주는게 시간을 줄일 수 있다.

     반복해서 사용하게 될 경우 그때 그때 다시 계산해줄 필요가 없으므로 자바 또한 이러한 방식으로 바꿔서 풀면

     좋을 것 같다

import math
k = 123456*2+1
num_list = [1]*k
for i in range(1, k):
    if i == 1:
        continue
    for k in range(2, int(math.sqrt(i))+1):
        if i % k == 0:
            num_list[i] = 0
            break

while True:
    n = int(input())
    sum = 0
    if n == 0:
        break
    for i in range(n+1, 2*n+1):
        sum += num_list[i]
    print(sum)

 

여러분도 한번 풀어보세요!

 

 

 

반응형
반응형

 

 

안녕하세요 Jin's 입니다.

 

백준 알고리즘의 수학2 중 소수 구하기 ( 문제 번호 : 1929 )의 소스입니다.

 

 

Java와 Python 두가지 버전 소스입니다.

 

예시 ) 4  : 1 2 4

        12 : 1 2 3 4 6 12

* 제곱근의 루트보다 작은 수일때 약수가 존재하지 않는다면 소수이므로 찾는 범위를 반으로 줄여 시간을 줄일 수 있다. 

 

1) JAVA

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int m = scan.nextInt();
		int n = scan.nextInt();
		scan.close();
		
		for(int i=m; i<=n; i++){
			int result = 0;
			int x = (int)Math.sqrt(i);
			if(i==1) result++;

			for(int j=2; j<=x; j++){
				if(i%j==0){
					result++;
					break;
				}
			}
			
			if(result==0){
				System.out.println(i);
			}
		}
	}

}

 

2) PYTHON

import math
m, n = map(int, input().split())
for i in range(m, n+1):
    result = 0
    if i == 1:
        result += 1
        continue
    x = int(math.sqrt(i))
    for k in range(2, x+1):
        if i % k == 0:
            result += 1
            break

    if result == 0:
        print(i)

 

여러분도 한번 풀어보세요!

 

 

반응형
반응형

 

 

안녕하세요 Jin's 입니다.

 

백준 알고리즘의 수학2 중 소수 ( 문제 번호 : 2581 )의 소스입니다.

 

 

Java와 Python 두가지 버전 소스입니다.

 

1) JAVA

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int m = Integer.parseInt(scan.nextLine());
		int n = Integer.parseInt(scan.nextLine());
		int sum = 0;
		int min = n;
		for(int i=m; i<=n; i++){
			int result = 0;
			if(i==1) result++;

			for(int j=2; j<i; j++){
				if(i%j==0){
					result++;
					break;
				}
			}
			
			if(result==0){
				sum += i;
				if(min>i){
					min = i;
				}
			}
		}
		
		if(sum==0){
			System.out.println(-1);
		}else{
			System.out.println(sum);
			System.out.println(min);	
		}
		scan.close();
	}

}

 

2) PYTHON

m = int(input())
n = int(input())
sum = 0
min = n
for i in range(m, n+1):
    result = 0
    if i == 1:
        result += 1
        continue

    for k in range(2, i):
        if i % k == 0:
            result += 1
            break

    if result == 0:
        sum += i
        if min > i:
            min = i

if sum == 0:
    print(-1)
else:
    print(sum)
    print(min)

 

여러분도 한번 풀어보세요!

 

 

 

반응형
반응형

 

 

안녕하세요 Jin's 입니다.

 

백준 알고리즘의 수학2 중 소수 찾기 ( 문제 번호 : 1978 )의 소스입니다.

 

 

Java와 Python 두가지 버전 소스입니다.

 

1) JAVA

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int n = Integer.parseInt(scan.nextLine());
		int result = n;
		for(int i=0; i<n; i++){
			int temp = scan.nextInt();
			if(temp==1) result--;
			for(int j=2;j<temp;j++){
				if(temp%j==0){
					result--;
					break;
				}
			}
		}
		System.out.println(result);
		scan.close();
	}

}

 

2) PYTHON

n = int(input())
num_list = map(int, input().split())
result = n
for i in num_list:
    if i == 1:
        result -= 1
        continue

    for k in range(2, i):
        if i % k == 0:
            result -= 1
            break
print(result)

 

여러분도 한번 풀어보세요!

 

 

반응형
반응형

안녕하세요 Jin's입니다.

 

오랜만에 조금 멀리 옆동네로 공부를 하러 인하대 후문으로 나오게 되었습니다.

( 사실 서브웨이 먹으러 왔다가 온 거는 비밀.. ㅎㅎ)

 

영업시간은 오전 10시~ 오후 9시까지 하네요

늦게까지 공부하실 분들은 참고 하세요!

 

그리고, 제일 중요한 가격은 조금 저렴한 느낌이네요~

 

저는 아이스아메리카노를 시켜 먹었답니다.

맛은 그냥 무난한 커피(?)에요.

 

이 곳의 장점은 넓찍한 노트북 테이블이 있고, 사람이 많이 없다는 점입니다.

제가 토요일에 와서 사람이 없었던 걸 수도 있어요 ㅎㅎ

 

노트북 테이블에서 바라본 카페 모습입니다.

 

 

마지막으로 노트북 들고 가기 좋은 이 카페는 포크송(?) 같은 예전노래가 나오니 참고하세요

저는 이어폰 끼고 공부를 하는데도 음악소리가 꽤 크더라구요

 

키작은커피나무 위치는 아래에서 확인하세요~

 

 

반응형

+ Recent posts