728x90
⬛ 프로그래머스 | LV.2 N개의 최소 공배수 - 유클리드 호제법 https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚나의 풀이 이 문제를 풀기 위해서는 ‘유클리드 호제법’에 대해서 알아야 한다. 1) 최대 공약수를 구할 때, ‘유클리드 호제법’을 사용하여 구하고 2) 최소 공배수 = (a * b) / 최대 공약수 로 구한다. 따라서 이 문제는 유클리드 호제법을 먼저 이해하는 게 중요하다. [풀이 설명] gcd(int a, int b) 함수는 ..
⬛ 프로그래머스 | LV.2 방문 길이 - HashMap과 객체 equals, hashCode 재정의 문풀 https://school.programmers.co.kr/learn/courses/30/lessons/49994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚나의 풀이 기본적으로 dx와 dy를 정의하는 것도 U, D, L, R의 명령어에 맞게 제대로 정의해야 한다. U(위), D(아래), L(왼), R(오) int dx = {0, 0, -1, 1}; int dy = {1, -1, 0, 0}; 인덱스로 방향을 구분해주자. 만약 현재 명령어가 'U..
⬛ 프로그래머스 | LV.2 피로도 - 완전 탐색, DFS 문풀 https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚나의 풀이 문제에서 추론할 수 있는 핵심적인 사실은 다음과 같다. 목표 : 유저 탐험 가능한 최대 던전 수 구하기 각 던전은 하루에 한 번씩 탐험할 수 있다. ( = 중복 방문X. visited로 방문 체크해야 한다) 현재의 피로도 k 와 비교했을 떄, k보다 ‘최소 피로도’가 작거나 같아야 해당 던전 탐험이 가능하다. 각 던전마다..
⬛ 프로그래머스 | LV.2 괄호 회전하기 - Stack 활용 문풀 https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚나의 풀이 괄호 문자열을 1개씩 회전시킨 문자열 str (= 맨앞글자 맨뒤로) 의 상태가 (), [], {} ‘올바르 괄호’ 문자열인 경우에만 answer++해야하는 문제이다. 올바른 문자열의 판단은 Stack을 활용해야 한다. 여기서 중요한 게, 현재 찍은 charAt(j)의 값과 스택에서 peek()한 값이 짝을 이루어야 p..
⬛ 프로그래머스 | LV.2 의상 - HashMap & 경우의 수 문풀 💚나의 풀이 문제에서 최소 1개의 옷은 입는다고 되어있다. (= 모두 안입는 경우는 없다) 종류별로 입는 옷이 겹치면 안되고, 종류별로 각 1개의 옷만 걸칠 수 있다. 각 종류별로 옷을 겹치지 않게 1개씩 뽑거나 + 아예안뽑거나의 경우가 생긴다. 그리고 그 경우는 최소 1번의 사건에서 동시에 일어난다. 경우의 수 문제로 생각해서 수식까지 끌어내야 하는 문제였다. 💚 제출 코드 import java.util.*; class Solution { public int solution(String[][] clothes) { Map map = new HashMap(); for(String[] x : clothes){ String name = x..
⬛ 프로그래머스 | LV.2 예상 대진표 - 단순 구현 문풀 https://school.programmers.co.kr/learn/courses/30/lessons/12985 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 입출력 예 💚나의 풀이 처음에는 트리 형태로 뻗어가나 ? 쭉 타고 올라가서 Lv이 같아질 때 lv 값을 리턴해야 하나 ? 그런 생각으로 접근을 했다. 그냥 단순 구현 문제이다. A와 B는 반드시 올라간다고 생각을 하고, 매 라운드에서 N이 반으로 줄어들면서 소속 팀이 재배정(a/2) 된다. 여기서 하나의 규칙적인 수식이 파생되는데 이걸 ..
⬛ 프로그래머스 | LV.2 영어 끝말잇기 - HashMap 활용 https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다. 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다. 마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다. 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다. 이전..
⬛ 프로그래머스 | LV.2 짝지어 제거하기 - Stack 활용 https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적..
프로그래머스 | LV.3 섬 연결하기 - 최소비용 신장 트리 https://school.programmers.co.kr/learn/courses/30/lessons/42861 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 임의의 i에 대해, costs[i][0] 와 costs[i] [1]에는 다리가 연결되는 두 섬의 번호가 들어있고, costs[i] [2]에는 이 두 섬을 연결하는 다리를 건설할 때 드는 비용입니다. 이 부분을 잘 봤어야 한다. 즉, 시작점은 costs[i][0] 이 되고, 끝점은 costs[i][1] 이 되며, 비용가중치는 costs[i..
프로그래머스 | LV.2 구명보트 (그리디) https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게..
⬛ 프로그래머스 | LV.2 게임 맵 최단거리 | BFS https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다. 지금부터 당신은 한 팀의 팀원이 되어 게임을 진행하려고 합니다. 다음은 5 x 5 크기의 맵에, 당신의 캐릭터가 (행: 1, 열: 1) 위치에 있고, 상대 팀 진영은..
프로그래머스 | LV.3 네트워크 문제 https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다...
⬛ 프로그래머스 | LV.2 타겟 넘버 문제 - DFS 문풀 https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💚나의 풀이 일단 각 배열의 값의 순서는 조절 X 배열의 각 idx별 값은 1) 더하거나 2) 빼는 경우만 있다. dfs로 해당의 경우를 깊이 탐색하며 끝에 다다랐을 때의 sum 값이 target과 일치할 때만 answer++;처리 class Solution { static int answer =0; //dfs static void df..