https://www.acmicpc.net/problem/10250
풀이가 2가지 방법이 있다.
하나는 직접 for문을 통해 계산하는 방법.
다른 하나는 규칙을 통해 계산하는 방법.
근데 보통 다른 상황과 엮이지 않고 이 상태에서의 답을 구하는 문제들은 규칙성을 노리고 내는 문제들 같다(개인적인 생각)
규칙
층: (N - 1) % H + 1
호: (N - 1) / H + 1
-1 후에 +1을 해주는 이유는 N과 H가 같은 경우에 발생하는 문제가 있다.
H(전체 층수)가 3일 때 N = 3인 경우 N % H로 계산하면 0층이 된다. 그래서 그렇다.
호도 저렇게 해주는 이유가 위와 비슷하다 N == H일 때 N / H + 1이면 1이어야 하는데 2가 된다.
#include <cstdio>
int main()
{
int T;
scanf("%d", &T);
while (T--)
{
int W, H, N;
scanf("%d %d %d", &H, &W, &N);
printf("%d%02d\n", ((N - 1) % H) + 1, ((N - 1) / H + 1));
}
return 0;
}
'온라인저지' 카테고리의 다른 글
[BOJ] 14442번: 벽 부수고 이동하기 2 (0) | 2018.08.07 |
---|---|
[BOJ] 1727번: 커플 만들기 (0) | 2018.08.04 |
[BOJ] 2775번: 부녀회장이 될테야 (0) | 2018.08.04 |
[BOJ] 1967번: 트리의 지름 (0) | 2018.08.02 |
[BOJ] 6603번: 로또 (0) | 2018.08.02 |
[BOJ] 2178번: 미로 탐색 (0) | 2018.08.02 |
댓글