DAILY

5월 14일 알고리즘 연습

ssund 2023. 5. 14. 20:07

https://school.programmers.co.kr/learn/courses/30/lessons/181916

function solution(a, b, c, d) {
  let dict = new Map();
  let numbers = [a, b, c, d];
  let answer = 1;

  numbers.map((number) => {
    dict.set(number, (dict.get(number) || 0) + 1); 
  })

  switch(dict.size) {
    case 1: 
      answer = 1111 * a;
      break;
    case 2:
      const [p, q] = dict.keys();
      
      if (dict.get(p) === 3) {
        answer = Math.pow(10 * p + q, 2);
        break;
      }

      if (dict.get(q) === 3) {
        answer = Math.pow(10 * q + p, 2);
        break;
      }

      answer = (p + q) * Math.abs(p - q)
      break;
    case 3: 
      dict.forEach((value, key) => {
        if (value === 1) {
          answer *= key;
        }
      })
      break;
    case 4: 
      answer = Math.min(a, b, c, d)
      break;
    default:
      break;
  }

  return answer;
}

solution(6, 4, 2,5);

 

new Map()을 이용해서 딕셔너리 객체를 만들어서 

키에 숫자가 들어가고, 값으로 숫자 몇개가 있는지 카운트가 들어간다.

// new Map()에 관련된 속성

let map = new Map();
map.size; // 몇개의 키가 들어있는지
map.set(key, value)
map.get(key)

map.forEach((value, key) => {
	
})

 

https://school.programmers.co.kr/learn/courses/30/lessons/181915

string index는 string[index]로 접근할수있다. 

 

https://school.programmers.co.kr/learn/courses/30/lessons/181913


문자열 메소드 

1. substr : 시작 인덱스와 길이(생략 가능)를 정해서 문자열 자르기
2. substring : 시작 인덱스와 끝 인덱스(생략 가능)를 정해서 문자열 자르기
3. slice : 시작 인덱스와 끝 인덱스(생략 가능)를 정해서 문자열 또는 배열 자르기
4. splice : 시작 인덱스와 길이(생략 가능)를 정해서 배열 자르기
5. split : 문자열을 나눌 구분자와, 잘라진 문자열의 최대 갯수(생략 가능)를 정해서 문자열 자르기

 

https://school.programmers.co.kr/learn/courses/30/lessons/181912

https://school.programmers.co.kr/learn/courses/30/lessons/181911