28~30번 문제풀이

강인호·2022년 7월 19일
0

알고리즘 문제풀이

목록 보기
9/39

처음에는 n의 약수와 m의 약수를 구한후 match를 쓰려고 했지만 잘 안돼서

n의약수 배열 a1 m의 약수 배열 a2를 구하고 a1의 인자들을 for문 돌리면서 a2에 includes함수로 포함이 되면 공약수 배열에 넣은 후 내림차순 정렬후 첫번째 인자를 가리키도록 짰다.

공배수의 경우에는 어떻게 구할까 고민을 하다가 최소공배수는 중간에 곂치는게 없더라고 서로를 곱하면 무조건 같은값이 나오기 때문에 서로를 곱할때 까지 for문을 돌려서 배수 배열을 각각 구한뒤 똑같이 includes로 공배수 배열에 값을 넣고 이번엔 오름차순으로 정렬한뒤 첫번째 인자를 가리켰다.

29번 문제

처음 접근은 for문으로 commands를 돌면서 i번째 인덱스의 0번째인덱스와 1번째 인덱스로 자르는것으로 접근을 했고 중간에 값이 이상해서 자세히 생각해보니

array의 2번째숫자는 1번째 인덱스 5번째 숫자는 4번째 인덱스 이므로

slice함수를 사용하면 첫번째 숫자에 -1을 해야 값이 제대로 나왔다.

answer = array.slice(commands[i][0]-1,commands[i][1]) 로 자른 뒤

오름차순 정렬을 하고 정렬한 배열의 commands[i][2]번째의 숫자를 지정 해야하는데 마찬가지로 인덱스는 0부터 세니 -1을 해주었다.

그 다음 result에 값을 하나씩 넣는식으로 진행했다.

최종코드는

30번 문제

for문을 돌면서 n%i=1 이 될 때 i를 빈 배열에 넣는 식으로 나머지가 1이 되는 수를 찾고 오름차순 배열을 한 뒤 0번째 인덱스를 지정해주었다.

0개의 댓글