티스토리 뷰

1. 문제

https://programmers.co.kr/learn/courses/30/lessons/62048

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

2. 설명

int 범위 때문에 화날뻔한 문제

★ int -> long 변환할 때, java는 그냥 아래와 같이 넣어줘도 변환 가능하다.

문제 자체의 알고리즘 식은 모르겠어서 참고해서 풀었습니다.

w * h - ( w + h - 최대공약수 ) 라고 합니다.

w랑 h의 범위가 1억까지라서 long으로 변환해서 넣어줘야 됨.

 

3. 코드

class Solution {
	public long solution(int w,int h) {
	long answer = 1;
        long lw = w; // long 변환
        long lh = h;
        
        if(lw >= lh)
            answer = lw * lh - (lw + lh - gcd(lw,lh));
        else
            answer = lw * lh - (lw + lh - gcd(lh,lw));
		return answer;
	}
    
    // 최대공약수
    long gcd(long big, long small) {
        while(small > 0) {
            long temp = big % small;
            big = small;
            small = temp;
        }
        return big;
    }
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday