목록문제 (388)
sm 기술 블로그
let input = require("fs").readFileSync(0).toString().split(" "); N = parseInt(input[0]); if (N == 7 || N == 4) { console.log(-1); } else if (N % 5 == 1 || N % 5 == 3) { console.log(parseInt(N / 5) + 1); } else if (N % 5 == 2 || N % 5 == 4) { console.log(parseInt(N / 5) + 2); } else if (N % 5 == 0) { console.log(parseInt(N / 5)); } 상세한 설명 https://smhope.tistory.com/158
N = int(input()) if(N == 7 or N == 4): print(-1) elif((N % 5 == 1) or (N % 5 == 3)): print((N//5)+1) elif((N % 5 == 2) or (N % 5 == 4)): print((N//5)+2) elif(N % 5 == 0): print(N//5) 개수가 10 이상부터는 특정 규칙에 따라서 필요한 수가 형성되어있다. 필요한 개수는, - 5로 나눈 나머지가 만약 1, 3이면 몫 보다 1더 크고, - 5로 나눈 나머지가 만약 2, 4이면 몫 보다 2더 큼을 짐작 가능하다. - 마지막으로 5로 나누어 떨어질 때 몫이랑 동일하다.
let input = require("fs").readFileSync(0).toString().trim().split("\n"); const T = input.shift(); let APT = Array.from(Array(15), () => new Array(15)); let result = ""; const setAPT = () => { for (let i = 0; i < 15; i++) { APT[i][1] = 1; //각층 1호 APT[0][i] = i; // 0층 } for (let i = 1; i < 15; i++) { for (let j = 2; j < 15; j++) { APT[i][j] = APT[i][j - 1] + APT[i - 1][j]; } } }; for (let i = 1; i..
T = int(input()) num = 1 APT = [[0 for i in range(15)] for j in range(15)] # 2차원 배열 선언 result = '' def setAPT(): for i in range(15): APT[i][1] = 1 # 1호 = 1명씩 APT[0][i] = i # 0층 인원 for i in range(1, 15): for j in range(2, 15): # i 층수, j 호수 APT[i][j] = APT[i][j-1] + APT[i-1][j] # 현재 층수,호수 = 현재 층수, 전 호수 + 전 층수 + 전 호수 for _ in range(T): k = int(input()) n = int(input()) # k층수 n호수 setAPT() result += ..