# [Algorithm/JS] ๋ฐฑ์ค 10250๋ฒ ACM ํธํ
๐ ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ (opens new window)
# Question
ACM ํธํ ๋งค๋์ ์ง์ฐ๋ ์๋์ด ๋์ฐฉํ๋ ๋๋ก ๋น ๋ฐฉ์ ๋ฐฐ์ ํ๊ณ ์๋ค. ๊ณ ๊ฐ ์ค๋ฌธ์กฐ์ฌ์ ๋ฐ๋ฅด๋ฉด ์๋๋ค์ ํธํ ์ ๋ฌธ์ผ๋ก๋ถํฐ ๊ฑธ์ด์ ๊ฐ์ฅ ์งง์ ๊ฑฐ๋ฆฌ์ ์๋ ๋ฐฉ์ ์ ํธํ๋ค๊ณ ํ๋ค. ์ฌ๋ฌ๋ถ์ ์ง์ฐ๋ฅผ ๋์ ์ค ํ๋ก๊ทธ๋จ์ ์์ฑํ๊ณ ์ ํ๋ค. ์ฆ ์ค๋ฌธ์กฐ์ฌ ๊ฒฐ๊ณผ ๋๋ก ํธํ ์ ๋ฌธ์ผ๋ก๋ถํฐ ๊ฑท๋ ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ์งง๋๋ก ๋ฐฉ์ ๋ฐฐ์ ํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๊ณ ์ ํ๋ค.
๋ฌธ์ ๋ฅผ ๋จ์ํํ๊ธฐ ์ํด์ ํธํ ์ ์ง์ฌ๊ฐํ ๋ชจ์์ด๋ผ๊ณ ๊ฐ์ ํ์. ๊ฐ ์ธต์ W ๊ฐ์ ๋ฐฉ์ด ์๋ H ์ธต ๊ฑด๋ฌผ์ด๋ผ๊ณ ๊ฐ์ ํ์ (1 โค H, W โค 99). ๊ทธ๋ฆฌ๊ณ ์๋ฆฌ๋ฒ ์ดํฐ๋ ๊ฐ์ฅ ์ผ์ชฝ์ ์๋ค๊ณ ๊ฐ์ ํ์(๊ทธ๋ฆผ 1 ์ฐธ๊ณ ). ์ด๋ฐ ํํ์ ํธํ ์ H ร W ํํ ํธํ ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ํธํ ์ ๋ฌธ์ ์ผ์ธต ์๋ฆฌ๋ฒ ์ดํฐ ๋ฐ๋ก ์์ ์๋๋ฐ, ์ ๋ฌธ์์ ์๋ฆฌ๋ฒ ์ดํฐ๊น์ง์ ๊ฑฐ๋ฆฌ๋ ๋ฌด์ํ๋ค. ๋ ๋ชจ๋ ์ธ์ ํ ๋ ๋ฐฉ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ ๊ฐ์ ๊ฑฐ๋ฆฌ(๊ฑฐ๋ฆฌ 1)๋ผ๊ณ ๊ฐ์ ํ๊ณ ํธํ ์ ์ ๋ฉด ์ชฝ์๋ง ๋ฐฉ์ด ์๋ค๊ณ ๊ฐ์ ํ๋ค.
๋ฐฉ ๋ฒํธ๋ YXX ๋ YYXX ํํ์ธ๋ฐ ์ฌ๊ธฐ์ Y ๋ YY ๋ ์ธต ์๋ฅผ ๋ํ๋ด๊ณ XX ๋ ์๋ฆฌ๋ฒ ์ดํฐ์์๋ถํฐ ์ธ์์ ๋์ ๋ฒํธ๋ฅผ ๋ํ๋ธ๋ค. ์ฆ, ๊ทธ๋ฆผ 1 ์์ ๋น๊ธ์ผ๋ก ํ์ํ ๋ฐฉ์ 305 ํธ๊ฐ ๋๋ค.
์๋์ ์๋ฆฌ๋ฒ ์ดํฐ๋ฅผ ํ๊ณ ์ด๋ํ๋ ๊ฑฐ๋ฆฌ๋ ์ ๊ฒฝ ์ฐ์ง ์๋๋ค. ๋ค๋ง ๊ฑท๋ ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ ๋์๋ ์๋์ธต์ ๋ฐฉ์ ๋ ์ ํธํ๋ค. ์๋ฅผ ๋ค๋ฉด 102 ํธ ๋ฐฉ๋ณด๋ค๋ 301 ํธ ๋ฐฉ์ ๋ ์ ํธํ๋๋ฐ, 102 ํธ๋ ๊ฑฐ๋ฆฌ 2 ๋งํผ ๊ฑธ์ด์ผ ํ์ง๋ง 301 ํธ๋ ๊ฑฐ๋ฆฌ 1 ๋งํผ๋ง ๊ฑธ์ผ๋ฉด ๋๊ธฐ ๋๋ฌธ์ด๋ค. ๊ฐ์ ์ด์ ๋ก 102 ํธ๋ณด๋ค 2101 ํธ๋ฅผ ๋ ์ ํธํ๋ค.
์ฌ๋ฌ๋ถ์ด ์์ฑํ ํ๋ก๊ทธ๋จ์ ์ด๊ธฐ์ ๋ชจ๋ ๋ฐฉ์ด ๋น์ด์๋ค๊ณ ๊ฐ์ ํ์ ์ด ์ ์ฑ ์ ๋ฐ๋ผ N ๋ฒ์งธ๋ก ๋์ฐฉํ ์๋์๊ฒ ๋ฐฐ์ ๋ ๋ฐฉ ๋ฒํธ๋ฅผ ๊ณ์ฐํ๋ ํ๋ก๊ทธ๋จ์ด๋ค. ์ฒซ ๋ฒ์งธ ์๋์ 101 ํธ, ๋ ๋ฒ์งธ ์๋์ 201 ํธ ๋ฑ๊ณผ ๊ฐ์ด ๋ฐฐ์ ํ๋ค. ๊ทธ๋ฆผ 1 ์ ๊ฒฝ์ฐ๋ฅผ ์๋ก ๋ค๋ฉด, H = 6์ด๋ฏ๋ก 10 ๋ฒ์งธ ์๋์ 402 ํธ์ ๋ฐฐ์ ํด์ผ ํ๋ค.
# Input
ํ๋ก๊ทธ๋จ์ ํ์ค ์ ๋ ฅ์์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋๋ค. ํ๋ก๊ทธ๋จ์ ์ ๋ ฅ์ T ๊ฐ์ ํ ์คํธ ๋ฐ์ดํฐ๋ก ์ด๋ฃจ์ด์ ธ ์๋๋ฐ T ๋ ์ ๋ ฅ์ ๋งจ ์ฒซ ์ค์ ์ฃผ์ด์ง๋ค. ๊ฐ ํ ์คํธ ๋ฐ์ดํฐ๋ ํ ํ์ผ๋ก์ H, W, N, ์ธ ์ ์๋ฅผ ํฌํจํ๊ณ ์์ผ๋ฉฐ ๊ฐ๊ฐ ํธํ ์ ์ธต ์, ๊ฐ ์ธต์ ๋ฐฉ ์, ๋ช ๋ฒ์งธ ์๋์ธ์ง๋ฅผ ๋ํ๋ธ๋ค(1 โค H, W โค 99, 1 โค N โค H ร W).
# Output
ํ๋ก๊ทธ๋จ์ ํ์ค ์ถ๋ ฅ์ ์ถ๋ ฅํ๋ค. ๊ฐ ํ ์คํธ ๋ฐ์ดํฐ๋ง๋ค ์ ํํ ํ ํ์ ์ถ๋ ฅํ๋๋ฐ, ๋ด์ฉ์ N ๋ฒ์งธ ์๋์๊ฒ ๋ฐฐ์ ๋์ด์ผ ํ๋ ๋ฐฉ ๋ฒํธ๋ฅผ ์ถ๋ ฅํ๋ค.
# Example
# Input
2
6 12 10
30 50 72
2
3
# Output
402
1203
2
# Solution
# Solution 1 (์คํจ)
const [count, ...input] = require('fs')
.readFileSync('dev/stdin')
.toString()
.trim()
.split('\n');
input.map((a) => {
const [H, W, N] = a.split(' ').map(Number);
let yy = (N % H).toString(); // ์ธต
let xx = Math.ceil(N / H).toString(); // ํธ
if (xx.length == 1) xx = `0${xx}`;
console.log(yy + xx);
});
2
3
4
5
6
7
8
9
10
11
12
yy ๋ ์ธต, xx ๋ ํธ๋ฅผ ๋ํ๋ธ๋ค.
N ๋ฒ์งธ ๋ฐฉ์ ์ธต(yy)์ ๊ตฌํ๋ ค๋ฉด N ์ ์ธต์๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๊ตฌํ๋ฉด ๋๋ค.
yy = N % H
๋ฐฉ์ ํธ์(xx)๋ฅผ ๊ตฌํ๋ ค๋ฉด N์ ์ธต ์๋งํผ ๋๋๋ฉด ๋๋ค. ํธ ์๋ฅผ ๊ตฌํ ๋ ์ฃผ์ํ ์ ์ ๋๋ ๊ฐ์ด ๋๋์ด ๋จ์ด์ง์ง ์์ ๋๋ฅผ ๋๋นํ์ฌ ๋ฐ์ฌ๋ฆผ์ ํด์ค์ผํ๋ค. (Math.ceil
๋ฉ์๋)
xx = Meth.ceil(N / H);
๋ง์ง๋ง์ผ๋ก ํธ์๊ฐ ํ ์๋ฆฌ์๋ผ๋ฉด 10์ ์๋ฆฌ๋ฅผ 0์ผ๋ก ์ง์ ํด์ค๋ค.
์์ ์ ์ ๋ ฅ๊ฐ์ผ๋ก ์คํ์์ผ๋ณด์์ ๋ ๋ฌธ์ ์ ์ถ๋ ฅ๊ฐ๊ณผ ์ผ์นํ๋ค.
ํ๋ ธ์ต๋๋ค. x
๊ทธ๋ฌ๋ ์ ํ์ด๋ ์คํจํ ํ์ด๋ค.
https://www.acmicpc.net/board/view/74683 (opens new window)
์ด ๋ฌธ์ ์ ๋ํ ๋ฐ๋ก๋ฅผ ์ฐพ์๋ค. ์ถ๋ ฅ๊ฐ์ด ์์ดํ ์ ๋ ฅ๊ฐ์ด ์์ด ํ์ธํด๋ณด๋
์ธต ์๋ฅผ ๊ตฌํ ๋, ๊ฐ์ฅ ๋ง์ง๋ง ์ธต์ด ๋๋ฉด yy ๊ฐ์ด 0 ์ด ๋๋ฏ๋ก ๊ฐ์ฅ ๋์ ์ธต(H) ์ผ๋ก ๋์ ํด์ฃผ์ด์ผ ํ๋ค๋ ๊ฒ์ ์ ์ ์์๋ค.
# Solution 2 (์ฑ๊ณต)
๋ค์ ์๋ํ ํ์ด๋ค.
const [count, ...input] = require('fs')
.readFileSync('../input.txt')
.toString()
.trim()
.split('\n');
input.map((a) => {
const [H, W, N] = a.split(' ').map(Number);
let xx = Math.ceil(N / H); // ํธ
let yy = N % H; // ์ธต
if (yy === 0) yy = H;
if (xx / 10 < 1) xx = `0${xx}`;
console.log(`${yy}${xx}`);
});
2
3
4
5
6
7
8
9
10
11
12
13
์์์ ๊ฐ๋ ์ฑ์ด ์ข์ง ์์ ์ฝ๋๋ค๋ ํจ๊ป ์์ ํ๋ค.
์ธต ์๊ฐ ํ ์๋ฆฌ ์์์ ํ์ธํ๋ ์ฝ๋๋ฅผ ๋ฌธ์์ด์ length ๊ฐ ์๋ ์ฐ์ฐ์ผ๋ก ์ฐพ์๋๋ค.
10์ผ๋ก ๋๋ ๊ฐ์ด 1๋ณด๋ค ์๋ค๋ฉด ํ ์๋ฆฌ ์๋ผ๋ ์๋ฏธ์ด๋ฏ๋ก ํ์๋ฆฌ ์๋ผ๋ฉด ๋ฐฑํฑ์ ์ฌ์ฉํด ์ซ์ ์์ 0์ ๋ถ์ฌ์คฌ๋ค. ์ถ๋ ฅ๊ฐ ์ญ์ ๋ฐฑํฑ์ ํตํด ๋ฌธ์์ด๋ก ํฉ์ณค๋ค
์ ๋ต