ν‹°μŠ€ν† λ¦¬ λ·°

문제

ν˜„μˆ˜λ„€ 반 μ„ μƒλ‹˜μ€ 반 ν•™μƒλ“€μ˜ μˆ˜ν•™μ μˆ˜λ₯Ό ν–₯μƒμ‹œν‚€κΈ° μœ„ν•΄ λ©˜ν† λ§ μ‹œμŠ€ν…œμ„ λ§Œλ“€λ €κ³  ν•œλ‹€. λ©˜ν† λ§μ€ λ©˜ν† μ™€ λ©˜ν‹°κ°€ ν•œ 짝이 λœλ‹€.μ„ μƒλ‹˜μ€ M번의 μˆ˜ν•™ν…ŒμŠ€νŠΈ λ“±μˆ˜λ₯Ό 가지고 λ©˜ν† μ™€ λ©˜ν‹°λ₯Ό μ •ν•œλ‹€.

 

λ§Œμ•½ A학생이 λ©˜ν† μ΄κ³ , B학생이 λ©˜ν‹°κ°€ λ˜λŠ” 짝이 λ˜μ—ˆλ‹€λ©΄, A학생은 M번의 μˆ˜ν•™ν…ŒμŠ€νŠΈμ—μ„œ λͺ¨λ‘ B학생보닀 λ“±μˆ˜κ°€ μ•žμ„œμ•Ό ν•œλ‹€.M번의 μˆ˜ν•™μ„±μ μ΄ 주어지면 λ©˜ν† μ™€ λ©˜ν‹°κ°€ λ˜λŠ” 짝을 λ§Œλ“€ 수 μžˆλŠ” κ²½μš°κ°€ 총 λͺ‡ 가지인지 κ΅¬ν•˜κ³ μž ν•œλ‹€.

 

λ¬Έμ œν’€μ΄

μš°μ„  λ©˜ν† μ™€ λ©˜ν‹°κ°€ 짝이 될 수 μžˆλŠ” λͺ¨λ‘ 경우의 수λ₯Ό κ΅¬ν•œλ‹€.λ©˜ν† κ°€ 될 수 μžˆλŠ” 인원 μˆ˜λŠ” 4λͺ…이고 λ©˜ν‹°κ°€ 될 수 μžˆλŠ” 인원 수 λ˜ν•œ 4λͺ…이기 λ•Œλ¬Έμ— 총 16가지 경우의 수둜 짝 짓을 수 μžˆλ‹€.

 

이 쀑 λ©˜ν† μ™€ λ©˜ν‹°κ°€ 짝이 되기 μœ„ν•΄μ„œλŠ” 총 n번의 μ‹œν—˜ κ²°κ³Ό λͺ¨λ‘μ—μ„œ λ©˜ν† μ˜ λ“±μˆ˜κ°€ λ©˜ν‹°μ˜ λ“±μˆ˜λ³΄λ‹€ λ†’μ•„μ•Ό ν•œλ‹€.μ‹œν—˜ κ²°κ³ΌλŠ” λ“±μˆ˜ μˆœμ„œλŒ€λ‘œ 1~4번으둜 λ‚˜μ—΄λ˜μ–΄ μžˆλ‹€. 이에 쀑첩 λ°˜λ³΅λ¬Έμ„ μˆ˜ν–‰ν•˜μ—¬ 각 경우의 수 i(λ©˜ν† )와 j(λ©˜ν‹°) 쌍의 λ“±μˆ˜(ν•΄λ‹Ή μ‹œν—˜μ˜ 인덱슀  sκ°’)λ₯Ό, μž„μ˜ λ³€μˆ˜ pi와 pjλ₯Ό 톡해 식별해 μ€€λ‹€.

 

pi(λ©˜ν†  λ“±μˆ˜)κ°€ pj(λ©˜ν‹° λ“±μˆ˜)보닀 값이 μž‘μ„ 경우, κ°€μ‚° ν–ˆμ—ˆλ˜ 식별 λ³€μˆ˜μΈ cnt의 값이 3(총 3번의 μ‹œν—˜μ΄ μΉ˜λ€„μ‘ŒκΈ° λ•Œλ¬Έμ—)일 κ²½μš°μ—λ§Œ ν•΄λ‹Ή μŒμ„ μ •λ‹΅ μ²˜λ¦¬ν•˜μ—¬ μ€€λ‹€.

 

μ½”λ“œ

function solution(test){
                let answer=0;
                m=test.length;
                n=test[0].length;
                for(let i=1; i<=n; i++){
                    for(let j=1; j<=n; j++){
                        let cnt=0;
                        for(let k=0; k<m; k++){
                            let pi=pj=0;
                            for(let s=0; s<n; s++){
                                if(test[k][s]===i) pi=s;
                                if(test[k][s]===j) pj=s;
                            }
                            if(pi<pj) cnt++;
                        }
                        if(cnt===m) answer++;
                    }
                }
                return answer;
            }
            
            let arr=[[3, 4, 1, 2], [4, 3, 2, 1], [3, 1, 4, 2]];
            console.log(solution(arr));
λŒ“κΈ€
곡지사항
μ΅œκ·Όμ— 올라온 κΈ€
μ΅œκ·Όμ— 달린 λŒ“κΈ€
Total
Today
Yesterday
링크
TAG
more
Β«   2024/10   Β»
일 μ›” ν™” 수 λͺ© 금 ν† 
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
κΈ€ 보관함