코딩테스트/JavaScript

[코딩테스트] 가위 바위 보

CODE_PLAN 2023. 12. 19. 20:32

나의 풀이 

        function solution(a, b) {
            let answer = "";
            for (let i = 0; i < a.length; i++) {
                // 0- 1 2 3 4 5 67 8 9
                // 1-0 1 2 3 4 5 6 7 8 9
                // 1vs2 = 2
                // 1vs3 =1 
                // 2vs 1
                // 2vs3 
                // 

                // for (let j = 0; j < b.length; j++) {
                //     if (a[i] > b[j]) {
                switch (a, b) {
                    case a[i] > b[i]:
                        return;
                    case a
                }

                //     }

                // }


            }

            return answer;
        }

위는 나의 풀이다. 우선 컨디션이 안좋을때 풀어서 그런지 모르겠는데 잘 안풀렸고 

기준점을 잘 잡아야된다는것을 몰랐다. 그래서 결국 도중에 멘붕와서 답은 제출하지 못했었다ㅠ

하지만 아직 알고리즘 초보니까 좀 더 배우면 할 수 있을거라고 생각하고 배워나가야겠다.

문제 정답

 <script>
            function solution(a, b){         
                let answer="";
                for(let i=0; i<a.length; i++){
                    if(a[i]===b[i]) answer+="D ";
                    else if(a[i]===1 && b[i]===3) answer+="A ";
                    else if(a[i]===2 && b[i]===1) answer+="A ";
                    else if(a[i]===3 && b[i]===2) answer+="A ";
                    else answer+="B ";
                }
                
                return answer;
            }

            let a=[2, 3, 3, 1, 3];
            let b=[1, 1, 2, 2, 3];
            console.log(solution(a, b));
        </script>

 

풀이법: 우선 a를 기준으로 값이나오는경우를 생각하고 a,b가 같은경우, 나머지 경우 이렇게 3가지로 나누면

간단히 식을 위처럼 작성할수있다.

어렵게 생각하지말고 한가지 기준, 즉, 기준을 잘 잡고 풀면 될것같다.