Skip to content

Comments

[tkddbs587] 25.01.23#32

Merged
JooKangsan merged 20 commits intomainfrom
tkddbs587
Feb 6, 2025
Merged

[tkddbs587] 25.01.23#32
JooKangsan merged 20 commits intomainfrom
tkddbs587

Conversation

@tkddbs587
Copy link
Collaborator

📌 푼 문제

문제이름 문제링크
모스부호 (1) https://school.programmers.co.kr/learn/courses/30/lessons/120838
A로 B 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/120886
진료 순서 정하기 https://school.programmers.co.kr/learn/courses/30/lessons/120835
등수 매기기 https://school.programmers.co.kr/learn/courses/30/lessons/120882
완주하지 못한 선수 https://school.programmers.co.kr/learn/courses/30/lessons/42576

📝 간단한 풀이 과정

모스부호 (1)

function solution(letter) {
  
  const morse = { ...생략 }

  // letter의 모스 부호가 공백 기준으로 나눠져있으므로 split를 통해 배열로 변환
  // 변환된 배열을 map을 통해 순회하며 morse 객체의 키와 일치하는 영어 문자열 value로 이루어진 새 배열 반환
  // 영어 배열을 join을 통해 문자열로 변환
  return letter
    .split(" ")
    .map((el) => morse[el])
    .join("");
}

A로 B 만들기

function solution(before, after) {
  // 1. 문자열을 배열로 변환
  // 2. 오름차순 정렬
  // 3. 정렬한 배열 문자열로 변환 후 비교
  return before.split("").sort().join("") === after.split("").sort().join("")
    ? 1
    : 0;
}

진료 순서 정하기

function solution(emergency) {
  let sorted = [...emergency].sort((a, b) => b - a); // 배열 내림차순 정렬

  return emergency.map((v) => sorted.indexOf(v) + 1);
  // 기존 배열의 각 요소를 내림차순 정렬된 배열에 매칭되는 요소로 접근하여 index + 1 로 순서대로 순위 매기고 map() 메서드를 통해 순위가 담긴 새 배열 반환
}

등수 매기기

function solution(score) {
  // score의 평균 점수 구하기
  let average = score.map((el) => (el[0] + el[1]) / 2);

  // 평균을 내림차순으로 정렬한 배열 선언 slice() 통해 average 배열 얕은 복사(원본 배열은 변경되지 않음)
  let sortedAverage = average.slice().sort((a, b) => b - a);

  // average의 요소와 동일한 sortedAverage 배열의 index 값에 1을 더하기
  return average.map((el) => sortedAverage.indexOf(el) + 1);
}

완주하지 못한 선수

function solution(participant, completion) {
  // 두 배열 sort로 정렬
  participant.sort();
  completion.sort();

  // 참가자 배열 길이만큼 순회
  for (let i = 0; i < participant.length; i++) {
    // 참가자 배열에 [i]와 완주자 배열의[i]가 다르면 탈락한 참가자로 판단
    if (participant[i] !== completion[i]) {
      return participant[i];
    }
  }
}

@tkddbs587 tkddbs587 self-assigned this Jan 23, 2025
Comment on lines +7 to +11
for (let i = 0; i < participant.length; i++) {
// 참가자 배열에 [i]와 완주자 배열의[i]가 다르면 탈락한 참가자로 판단
if (participant[i] !== completion[i]) {
return participant[i];
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

find 메소드를 사용해서 간결하게 사용 가능해요!!

return participant.find((name, i) => name !== completion[i]);

@JooKangsan JooKangsan merged commit e179ccf into main Feb 6, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants