File tree Expand file tree Collapse file tree 5 files changed +99
-0
lines changed
Expand file tree Collapse file tree 5 files changed +99
-0
lines changed Original file line number Diff line number Diff line change 1+ // https://school.programmers.co.kr/learn/courses/30/lessons/17686
2+
3+ function solution ( files ) {
4+ const regex = / ( [ ^ 0 - 9 ] + ) ( [ 0 - 9 ] + ) ( .* ) /
5+ files = files . map ( ( file , idx ) => ( {
6+ name : file ,
7+ parts : file . match ( regex ) ,
8+ originalIndex : idx ,
9+ } ) )
10+
11+ files = files . sort ( ( a , b ) => {
12+ {
13+ // HEAD 부분 비교 (대소문자 무시)
14+ const headA = a . parts [ 1 ] . toLowerCase ( )
15+ const headB = b . parts [ 1 ] . toLowerCase ( )
16+
17+ if ( headA < headB ) return - 1
18+ if ( headA > headB ) return 1
19+
20+ // HEAD가 같으면 NUMBER 부분 비교 (숫자로 비교)
21+ const numberA = Number ( a . parts [ 2 ] )
22+ const numberB = Number ( b . parts [ 2 ] )
23+
24+ if ( numberA < numberB ) return - 1
25+ if ( numberA > numberB ) return 1
26+
27+ // HEAD와 NUMBER가 모두 같으면 원래 순서 유지
28+ return a . originalIndex - b . originalIndex
29+ }
30+ } )
31+
32+ return files . map ( ( file ) => file . name )
33+ }
Original file line number Diff line number Diff line change 1+ // https://school.programmers.co.kr/learn/courses/30/lessons/42747
2+ // 핵심: 논문을 인용 횟수 기준 내림차순으로 정렬한 후,
3+ // 논문의 개수(인덱스+1)가 해당 논문의 인용 횟수보다 작거나 같은 최대 지점을 찾는 것
4+
5+ function solution ( citations ) {
6+ citations = citations . sort ( ( a , b ) => b - a )
7+
8+ let i = 0 // 현재까지 확인한 논문의 인덱스
9+ // i+1 <= citations[i]가 참이면:
10+ // "i+1번 이상 인용된 논문이 i+1편 이상"이라는 의미
11+ while ( i + 1 <= citations [ i ] ) {
12+ i ++
13+ }
14+
15+ return i
16+ }
Original file line number Diff line number Diff line change 1+ // https://school.programmers.co.kr/learn/courses/30/lessons/42746
2+
3+ function solution ( numbers ) {
4+ const convertString = numbers . map ( ( number ) => number . toString ( ) )
5+ const sorted = convertString . sort ( ( a , b ) => {
6+ const AB = Number ( a + b )
7+ const BA = Number ( b + a )
8+ return BA - AB
9+ } )
10+ const result = sorted . join ( "" )
11+ return result [ 0 ] === "0" ? "0" : result
12+ }
Original file line number Diff line number Diff line change 1+ // https://school.programmers.co.kr/learn/courses/30/lessons/68644
2+
3+ const solution = numbers => {
4+ const set = new Set ( ) ;
5+
6+ for ( let i = 0 ; i < numbers . length ; i ++ ) {
7+ for ( let j = i + 1 ; j < numbers . length ; j ++ ) {
8+ const num = numbers [ i ] + numbers [ j ]
9+ set . add ( num )
10+ }
11+ }
12+
13+ return [ ...set ] . sort ( ( a , b ) => a - b )
14+ }
Original file line number Diff line number Diff line change 1+ // https://school.programmers.co.kr/learn/courses/30/lessons/131705
2+
3+ const solution = ( number ) => {
4+ // 학생은 각자 정수번호가짐
5+ // 세명의 번호를 더해서 0이 되면 삼총사, 삼총사 만드는 가짓수 구하기
6+ let result = 0
7+ const selected = Array ( 3 ) . fill ( 0 )
8+ const dfs = ( depth , start ) => {
9+ if ( depth === 3 ) {
10+ let sum = 0
11+ for ( let i of selected ) {
12+ sum += number [ i ]
13+ }
14+ if ( sum === 0 ) result ++
15+ return
16+ }
17+ for ( let i = start ; i < number . length ; i ++ ) {
18+ selected [ depth ] = i
19+ dfs ( depth + 1 , i + 1 )
20+ }
21+ }
22+ dfs ( 0 , 0 )
23+ return result
24+ }
You can’t perform that action at this time.
0 commit comments