본문 바로가기

알고리즘 문제풀이

(32)
[프로그래머스 12980] Level2 점프와 순간 이동(Java) 문제 URL https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 Key Point 거리가 짝수라면 거리/2 인 위치에서 순간이동을 할 수 있다. 거리가 홀수라면 에너지 사용을 최소화해서 점프하는 거리는 1만큼 이다. Java 문제풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import java.util.*; public class Solution { public int solution(int n) ..
[프로그래머스 12953] Level2 N개의 최소공배수(Java) 문제 URL https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 Key Point 원소를 나눌 수 있는 수가 있다면 나눌 수 있는 수를 곱한다. 원소를 나눌 수 있는 수가 있다면 원소를 나눈 나머지를 기록한다. 모든 수를 나눌 수 없는 경우 남은 원소들을 모두 곱해준다. 원소를 나눌 수 있는 수는 N회 사용 가능하다. Java 문제풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2..
[프로그래머스 42885] Level2 구명보트(Java) 문제 URL https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 Key Point 최대 두명을 태우면서 제한 무게를 넘지 않아야 한다. 그렇기 위해 가장 큰 몸무게는 가장 작은 몸무게와 합산되어야 무게를 넘지 않을 가능성이 높아진다. Java 문제풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 import java.util.Arrays; class Soluti..
[프로그래머스 12973] Level2 짝지어 제거하기 문제 URL https://school.programmers.co.kr/learn/courses/30/lessons/12973# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 Key Point 처음에는 replaceAll 으로 해결하려 했는데 계속 효율성에서 시간초과가 발생했다. 2개씩 짝지어서라는 문장에서 괄호쌍 문제와 같다라는 것을 알아차렸어야 했다. 따라서 Stack을 활용해서 푸는 문제다. Java 문제풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28..
[프로그래머스 12981] Level2 영어 끝말잇기(Java) 문제 URL https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 Key Point 이전에 말한 단어의 끝 알파벳과 현재 말하는 단어의 앞 알파벳이 일치해야한다. 이전까지 말한 단어를 중복해서 말하면 안된다. Java 문제풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 4..
[프로그래머스 42842] Level2 카펫(Java) 문제 URL https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 Key Point yellow 가로 + 2 = brown 가로 이다. yellow 세로 + 2 = brown 세로 이다. yellow의 갯수는 = 가로 x 세로 이다. 가로는 세로와 길이가 같거나 더 길다. brown의 갯수는 2 x (yellow가로 + 2) + 2 x yellow세로 이다. Java 문제풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ..
[프로그래머스 12911] Level2 다음 큰 숫자(Java) 문제 URL https://school.programmers.co.kr/learn/courses/30/lessons/12911 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 Key Point 2진수로 변환한 숫자의 1의 갯수가 같아야한다. 간단한 문제였는데 처음에는 비트연산이며 이것저것 너무 복잡하게 생각해서 시간을 많이 소비한 것 같다. 😥 Java 문제풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 class Solution { publ..
[프로그래머스 87390] Level2 n^2배열 자르기 문제 URL https://school.programmers.co.kr/learn/courses/30/lessons/87390 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 Key Point i행 j열의 값은 i와 j중 더 큰 값에 +1을 한 것이다. (0행 0열부터 시작한다고 가정) n x n 배열을 행 기준으로 잘라 이어 붙였을 때, 각 인덱스는 [i / n][i % n]이 된다. 예를들어, 3 x 3 배열에서 인덱스 2의 위치를 찾는 다면 [2 / 3 = 0][2 % 3 = 2]가 되므로 0행2열의 값이 된다. 7의 위치를 찾는 다면 [7 ..
[프로그래머스 12924] 숫자의 표현 문제 URL https://school.programmers.co.kr/learn/courses/30/lessons/12924 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 Key Point 연속된 자연수들의 합을 구해야한다. 연속된 자연수의 합이 n보다 작다면 큰쪽 값을 하나 추가해서 다시 합을 구한다. 연속된 자연수의 합이 n보다 크다면 작은쪽 값을 하나 빼서 다시 합을 구한다. Java 문제풀이 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 3..
[프로그래머스 64055] Level2 튜플 문제 URL https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 Key Point 튜플이 원소 집합은 {a1}, {a1, a2}, {a1, a2, a3}, ... {a1, a2, ...., an}으로 n까지 하나씩 원소를 증가시키면서 집합을 만든다. 즉, an이 포함되는 집합까지 만들면 튜플의 가장 앞의 숫자인 a1은 n번 등장하게 되는 것이다. 문제풀이 Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ..