daily 알고리즘 : 프로그래머스 0 level 3일차

소히·2022년 10월 26일
0

알고리즘Daily

목록 보기
7/22
post-thumbnail

피자 나눠 먹기 1,2,3


"피자 나눠 먹기 2" 문제

머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요.


제한사항

  • 1 ≤ n ≤ 100

풀이

n명과 6조각의 최대공약수를 구한 후 n명을 최대공약수로 나눠주었다.

function solution(n) {
  let max = (a, b) => (a % b === 0 ? b : max(b, a % b));
  let gcd = max(n, 6);
  return n / gcd;
}


A로 B 만들기


문제

문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요.


제한사항

  • 0 < before의 길이 == after의 길이 < 1,000
  • before와 after는 모두 소문자로 이루어져 있습니다.

입출력 예

  • 입출력 예 #1 : "olleh"의 순서를 바꾸면 "hello"를 만들 수 있습니다.
  • 입출력 예 #2 : "allpe"의 순서를 바꿔도 "apple"을 만들 수 없습니다.

풀이

before과 after 문자열을 sort로 정렬시킨 다음 서로 비교하였다.

function solution(before, after) {
  let sort = (str) => [...str].sort();
  return sort(before).join("") === sort(after).join("") ? 1 : 0;
}

0개의 댓글