반응형
Notice
Recent Posts
Recent Comments
Link
지구정복
[수학] 백준 - ACM호텔 본문
728x90
반응형
https://www.acmicpc.net/problem/10250
-문제해설
그냥 입력받은 값을 수학적으로 구현했다.
층수 값을 만들고 호수 값을 더했다.
예를 들어 문제의 예시인 6 12 10인 경우
400 을 만들고 2를 만들어서 402를 출력했다.
먼저 층수 값을 만드는 방법은 두 가지로 나눠진다. 만약에 n%h가 0인경우와 n%h!=0인 경우로 나눠진다.
n%h==0 인 경우는 ( n-h * ((n/h)-1) ) * 100 이고
n%h!=0 인 경우는 ( n-h * (n/h) ) * 100 이다.
호수 값도 마찬가지로 두 가지 경우이다.
n/h
(n/h)+1
이 둘을 합쳐서 작성하면 아래와 같다.
( ( n-h * ((n/h)-1) ) * 100 ) + ( n/h )
( ( n-h * (n/h) ) * 100 ) + ( (n/h)+1 )
사실상 w값이 필요가 없다.. 다른 분들은 어떻게 풀었는지 참고해봐야겠다~~
추가적인 테스트케이스는 아래와 같다.
입력
3
5 100 45
95 90 20
95 90 150
출력
509
2001
5502
-자바
package math;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class BJ10250 {
private static BufferedWriter bw =
new BufferedWriter( new OutputStreamWriter(System.out));
private static int t, h, w, n;
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
t = Integer.parseInt( br.readLine() );
for( int i=0; i<t; i++ ) {
st = new StringTokenizer( br.readLine() );
h = Integer.parseInt( st.nextToken() );
w = Integer.parseInt( st.nextToken() );
n = Integer.parseInt( st.nextToken() );
if( n%h==0 ) bw.write( ( ( (n-h) * ((n/h)-1) ) * 100 )+(n/h) + "\n" );
else bw.write( ( (n-h*(n/h))*100 )+( (n/h)+1 ) + "\n" );
bw.flush();
}
bw.close();
br.close();
}
}
-파이썬
t = int(input())
for _ in range( t ):
h, w, n = map(int, input().split())
if n%h==0: print( ( ( n-h * ((n//h)-1) ) * 100 ) + ( n//h ) )
else: print( ( ( n-h * (n//h) ) * 100 ) + ( (n//h)+1 ) )
728x90
반응형
'데이터 엔지니어링 정복 > Algorithm' 카테고리의 다른 글
[수학] 백준 - 벌집 (0) | 2021.07.23 |
---|---|
[브루트포스] 백준 - 분해합 (0) | 2021.07.22 |
[수학] 백준 - 직각삼각형 (0) | 2021.07.22 |
[수학] 백준 - 직사각형에서 탈출 (0) | 2021.07.22 |
[브루트포스] 백준 - 체스판 다시 칠하기 (0) | 2021.07.22 |
Comments