본문 바로가기

알고리즘3

[알고리즘] 선택정렬 선택정렬 N개이 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 선택정렬을 사용해서 작성하세요. 입력설명 첫 번째 줄에 자연수 N(1 2022. 2. 6.
[알고리즘] 후위식 연산 스택(Stack)이용하여 풀기 후위식 연산 후위연산식이 주어지면 연산한 결과를 출력하는 프로그램을 작성하세요. 만약 3*(5+2)-9 을 후위연산식으로 표현하면 352+*9- 로 표현되며 그 결과는 12입니다. 입력설명 연산식의 길이는 50을 넘지않음 식은 1~9숫자와 +,-,*,/ 연산자로만 이루어짐 입력예제 352+*9- 출력예제 12 이 문제를 풀고나서 스택에 대해 조금은 감이 잡히는듯 싶다 처음엔 하나의 스택에 넣었다뺐다하면서 풀어나갈 알고리즘이 떠오르질않아서 입력예제의 수와 연산식을 서로다른 스택에 담아서 다시 각각의 스택에서 꺼내와 for문을 돌고돌아 해결해가야하나..........하고 한참을 고민했다 그러다 하나의 스택을 갖고도 풀수 있는 방법을 알게되니 아 이런식으로 스택을 사용하는거구나 .. 하고 이제서야 조금씩 감이.. 2022. 2. 4.
[알고리즘] 완전탐색 자연수배열요소 뒤집어 정렬하기 자연수배열요소 뒤집어 정렬하기 N개의 자연수가 입력되면 각 자연수를 뒤집은 요소가 담긴 배열을 리턴한다 입력예제 [32, 55, 62, 20, 250, 370, 200, 30, 100] 출력예제 [23, 55, 26, 2, 52, 73, 2, 3, 1] 1. 처음 짠 코드 function solution(arr){ let answer=[]; //최종 리턴할 요소를 담을 배열 // 요소 하나하나를 배열로 만들어서 answer배열에 담기 arr.forEach(el => { answer.push(el.toString().split("")); }); //배열로 만든 요소 하나하나를 돌면서 거꾸로 만들어준뒤 //join하여 number타입으로 바꿔서 answer배열안에 담아주기 for(let i=0; i=0; j.. 2022. 2. 3.