알고리즘/프로그래머스(51)
-
Level 2️⃣ - 수식 최대화
https://school.programmers.co.kr/learn/courses/30/lessons/67257 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr🚀문제 접근우선순위의 경우의 수는 부호가 총 3가지이므로 6가지이다.만약 우선 순위가 - > + > * 라면 - 연산부터 모두 하고, 그 다음에 + 연산, 그 다음에 * 연산을 이어서 해주면 된다.그림으로 표현하면 다음과 같다. 그렇다면 입력값으로 주어지는 "100-200*300-500+20" 이라는 문자열을 부호기호와 숫자를 분리해야한다.[100, -, 200, *, 3..
2024.04.24 -
Level 2️⃣ - 숫자카드 나누기
https://school.programmers.co.kr/learn/courses/30/lessons/135807 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제는 어렵지 않으나 유클리지 호제법을 구현한 코드만 외우고 있어서 간단한 예시와 함께 정리해보려고 한다. 🛠코드 그리고 gcd 함수는 두 수 사이의 최대공약수만 구할 수 있는 줄 알았는데 여러 수들의 최대공약수도 구할 수 있음을 배웠다. function solution(arrayA, arrayB) { let ret = []; let a = 0; let b = 0; arrayA.forEach((..
2024.04.23 -
Level 2️⃣ - 방금그곡
https://school.programmers.co.kr/learn/courses/30/lessons/17683 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🚀문제 해석 끝난 시각 - 시작 시각의 차이 (diff) 를 구한다. 분으로 바꿔서 해결한다. 악보의 길이를 diff보다 길다면 자르고, 짧다면 늘린다. m이 변경된 악보에 포함되어 있는지 확인한다. 되어있다면 ret에 넣어준다. 조건에 일치하는 음악이 여러개라면 정렬한다. 재생된 시간이 제일 긴 음악부터 정렬한다. 재생된 시간이 같다면 먼저 입력된 음악부터 정렬한다. 출력에 맞게 값을 리턴한다...
2024.04.23 -
Level 2️⃣ - 전력망을 둘로 나누기
https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🚀문제 접근 먼저 하나의 전력망을 끊어주면 두 개의 컴포넌트로 나뉘어지는 그래프가 주어지게 된다. 그렇다면 연결되어있는 모든 간선을 순회하면서 간선이 끊어졌을 때마다 나뉘어지는 컴포넌트 요소의 갯수의 차이를 절댓값으로 표현했을 때 가장 적은 값을 리턴하면 된다. 탐색을 시작할 루트 노드와 제외 노드를 활용하기 만약 4번 노드와 7번 노드가 연결된 간선을 제거한다고 했으면 다음과 같이 두 개의 컴포..
2024.04.11 -
Level 2️⃣ - 메뉴 리뉴얼
https://school.programmers.co.kr/learn/courses/30/lessons/72411 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🚀문제 접근 먼저 이 문제의 요구사항을 빠르게 파악하고, 예외할 부분을 체크하자. 문제의 핵심 요구사항은 가장 많이 함께 주문한 단품메뉴의 조합에 따라 코스요리를 만드는 것이다. 이렇게만 적어두면 무슨 말인지 잘 와닿지가 않는다. 작게 작게 이해해보자. 1번 손님 ➡ A,B,C,D,E,F 2번 손님 ➡ B,A,F 3번 손님 ➡ B,A 이렇게 손님들이 단품메뉴를 주문했다. 이 메뉴들 중에 함께 주문..
2024.04.11 -
Level 2️⃣ - 124나라의 숫자
https://school.programmers.co.kr/learn/courses/30/lessons/12899 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🚀문제 접근 124 나라에서는 모든 숫자를 1, 2, 4로만 표현한다. 즉, 숫자를 표현할 때 3개의 숫자로만 표현하므로 3진법이다. N진법과 관련된 유형의 문제가 나오면 N으로 나누었을 때의 나머지를 활용하면 된다. 문제의 예시를 살펴보면 1 은 1에 대응하고, 2는 2에 대응하며 3은 4에 대응한다. 즉, 3으로 나누었을 때 나머지가 0이면 4에 대응하는 것이고, 나머지가 1이면 1에 대응하는..
2024.04.11