본문 바로가기
  • 시 쓰는 개발자
알고리즘/코테 스터디 (2022)

12/27 스터디

by poetDeveloper 2022. 12. 28.

1300 K번째 수

n=10 , k=20이면
숫자가 크다보니 규칙을 찾아야함
A 행렬
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
...
10 20 30 40 50 60 70 80 90 100
B[20]

이중에서 20보다 작거나 같은 값이 몇개인지 세면 됨
=> 각 행이 구구단임 ?
k=20
i*j가 20 안에 몇개인지 세면 되는데
1행은 10개 10까지
2행은 10개 20까지
3행은 6개 18까지
4행은 5개 20까지
5행은 4개 20까지
6행은 3개 18까지
7행은 2개 14까지
8행은 2개 16까지
9행은 2개 18까지
10행은 2개 20까지

k // i => 20 인데 n은 10 (X)

mid = (0 + k) //2
각 행별로 행 수로 나눈 몫만큼 20보다 작은 게 있음.
mid // 1 , mid // 2 , mid // 3 , mid // 4 , ... mid // 10(n까지)
근데 이걸 일반화 하다보면 mid//1 에서 n을 초과하는 20이 나와버림
그래서 min(mid//i , n)으로 써줘서 최대 n이 되도록 값의 범위를 지정해줌

만약 이렇게 구한 개수가 우리가 구하는 

'알고리즘 > 코테 스터디 (2022)' 카테고리의 다른 글

12/23 스터디  (0) 2022.12.23
12/20 스터디  (0) 2022.12.20
12/7 스터디  (0) 2022.12.09
12/1 스터디  (0) 2022.12.01
11/27 스터디  (0) 2022.12.01