μν, 211011
λ¬Έμ
μμ κ·Έλ¦Όκ³Ό κ°μ΄ μ‘κ°νμΌλ‘ μ΄λ£¨μ΄μ§ λ²μ§μ΄ μλ€. κ·Έλ¦Όμμ 보λ λ°μ κ°μ΄ μ€μμ λ°© 1λΆν° μμν΄μ μ΄μνλ λ°©μ λμκ°λ©΄μ 1μ© μ¦κ°νλ λ²νΈλ₯Ό μ£Όμλ‘ λ§€κΈΈ μ μλ€. μ«μ Nμ΄ μ£Όμ΄μ‘μ λ, λ²μ§μ μ€μ 1μμ Nλ² λ°©κΉμ§ μ΅μ κ°μμ λ°©μ μ§λμ κ° λ λͺ κ°μ λ°©μ μ§λκ°λμ§(μμκ³Ό λμ ν¬ν¨νμ¬)λ₯Ό κ³μ°νλ νλ‘κ·Έλ¨μ μμ±νμμ€. μλ₯Ό λ€λ©΄, 13κΉμ§λ 3κ°, 58κΉμ§λ 5κ°λ₯Ό μ§λλ€.
μ λ ₯
첫째 μ€μ N(1 β€ N β€ 1,000,000,000)μ΄ μ£Όμ΄μ§λ€.
μΆλ ₯
μ
λ ₯μΌλ‘ μ£Όμ΄μ§ λ°©κΉμ§ μ΅μ κ°μμ λ°©μ μ§λμ κ° λ λͺ κ°μ λ°©μ μ§λλμ§ μΆλ ₯νλ€.
μμ μ λ ₯ 1
13
μμ μΆλ ₯ 1
3
Β
My solution
1μ κΈ°μ€μΌλ‘ κ°μ₯ κ°κΉμ΄ λ°©μ κ°μλ₯Ό μΈλ©΄ 6κ°, 2μΉΈλ§νΌ μ°¨μ΄λλ λ°©μ κ°μλ 12κ°, 3μΉΈλ§νΌ μ°¨μ΄λλ λ°©μ κ°μκ° 18κ°, 4μΉΈ μ°¨μ΄λλ λ°©μ κ°μλ 24κ°λ€.
forλ¬Έμ n=1μΌλ‘ μμν΄μ 1μ© μ¦κ°μν€λλ° μ΄ κ°μ λ°©μ κ°μλ₯Ό λ리λ λ° μ¬μ©ν΄μΌ νλ€.
λ°©μ κ°μλ 6μ nλ₯Ό κ³±ν΄μ£Όλ©΄ 6 * 1(i), 6 * 2, 6 * 3,,, μ© λν΄μ λμ μν¬ μ μλ€. μ
λ ₯κ°μ΄ λ°©μ κ°μλ³΄λ€ κ°κ±°λ μμμ§κ² λμμ λ λ°©μ κ°μλ₯Ό μ¦κ°μν¨ λ§νΌμ iλ₯Ό 리ν΄νκ² νλ€.
Β
μμ€μ½λ
function solution(i) {
const input = parseInt(i.toString().trim().split("\n"));
let cnt = 1;
let n = 1;
while (true) {
if (cnt >= input) {
console.log(n.toString());
break;
// return n.toString();
}
cnt += 6 * n;
n++;
}
}
test("solution", () => {
expect(solution("13")).toStrictEqual("3");
expect(solution("58")).toStrictEqual("5");
expect(solution("1")).toStrictEqual("1");
});