본문 바로가기

java46

[프로그래머스] 76502번 - 괄호 회전하기 (Java) 출처: https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 문제를 풀기 위해서는 크게 2가지를 해야 합니다. 1) 괄호 회전하기, 2) 올바른 괄호 문자열인지 확인하기 입니다. 1) 괄호를 회전하기 괄호를 회전하기 위해서는 괄호 문자열의 첫번째 문자를 마지막에 붙여주면 됩니다. 저는 substring과 concat을 사용해서 괄호를 회전했습니다. 2) 올바른 괄호 문자열인지 확인하기 올바른 괄호 문자열은 '('는 ')', '{'은 '}'.. 2023. 6. 16.
[프로그래머스] 138476번 - 귤 고르기 (Java) 출처: https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 크기가 서로 다른 종류의 수의 최솟값을 구해야 하므로 귤의 개수가 가장 많은 것부터 순차적으로 k개 고르면 됩니다. 문제 설명의 예시로 보면, 귤의 무게 별 개수는 아래의 표와 같습니다. 1 2 3 4 5 1개 2개 2개 1개 2개 귤 6개를 골라야 하기 때문에 개수가 가장 많은 2를 2개, 3을 2개, 5를 2개 고르면 됩니다. 1) HashMap 사용, 2) 배열 사용 두 .. 2023. 6. 14.
[프로그래머스] 12914번 - 멀리 뛰기 (Java) 출처: https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 계단을 올라갈 수 있는 방법은 1칸 혹은 2칸을 올라가는 방법입니다. 그렇다면 i번째 계단을 올라올 수 있는 방법은 i-1번째 계단에서 1칸 올라오는 방법, i-2번째 계단에서 2칸 올라오는 방법, 총 2가지 경우일 것입니다. 따라서 점화식은 dp[i] = dp[i-1] + dp[i-2] 라고 쓸 수 있습니다. 이 때 dp[0]은 0번째 계단이기 때문에 0이 되고, dp[1]은 .. 2023. 6. 14.
[프로그래머스] 12953번 - N개의 최소공배수 (Java) 출처: https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 n개의 수들의 최소공배수를 구하려면 앞에서부터 2개씩 최소공배수를 구하고, 그 다음은 구한 최소공배수와 그 다음 수의 최소공배수, ··· 를 반복합니다. 따라서 처음에는 arr[0]과 arr[1]의 최소공배수 result를 구합니다. 그 다음 2번째부터 n-1번째까지, result와 arr[i]의 최소공배수를 구합니다. 마지막까지 계산한 result가 n개의 최소공배수가 됩니다... 2023. 6. 14.
[프로그래머스] 12980번 - 점프와 순간 이동 (Java) 출처: https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 이동의 가능한 경우의 수는 2가지 입니다. K칸 점프 (현재까지 온 거리) x 2 위치로 순간이동 이때 점프하는 칸 수를 최소화 하고 싶기 때문에 순간 이동을 하다가 필요한 경우에 1칸 점프를 해야 합니다. 0칸에서 N칸으로 이동을 N칸에서 0칸으로 이동이라고 생각하면, (현재까지 온 거리) x 2 위치로 순간이동은 (현재 위치한 칸 / 2)의 위치로 순간이동 하는 것과 마찬가지.. 2023. 6. 13.
[프로그래머스] 43164번 - 여행경로 (Java) 출처: https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 2. 풀이 ⚠ 이 문제는 주의해야 할 조건들이 몇 개 있다. 항상 "ICN" 공항에서 출발한다. 주어진 항공권을 모두 사용해야 한다. 가능한 경로가 2개 이상일 경우 알파벳 순서가 앞서는 경로를 return 해야 한다. 3개의 조건을 잘 염두에 두고 문제를 풀어보자. 우선, 주어진 항공권을 모두 사용해서 모든 공항을 방문할 수 있는 경로를 찾아야 하기 때문에 DFS를 떠올려 볼 .. 2023. 6. 12.