본문 바로가기

개발/알고리즘

(7)
[프로그래머스] Lv2. 괄호 회전하기 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이먼저 괄호 쌍을 hashmap으로 만들어 둔 다음, stack을 사용해서 괄호 쌍이 맞는 지 확인한다. 느낀 점 & 기억 할 것- 다른 사람 풀이를 보고 나서 깨달은 건데 StringBuilder를 쓰면 나처럼 concat이나 substring을 안써도 되고 실행 시간을 줄일 수 있을 것 같다.- 요즘 오랜만에 알고를 풀기 시작 했더니 최적화나 가독성 따위 신경 쓰지 않고 코드를 쓰게 되는..
[프로그래머스] Lv2. 연속 부분 수열 합의 개수 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이주어진 배열(elements)를 두 개 이어붙인 배열을 만들어서 1개부터 elements의 길이 수까지 합을 set(HashSet)에 더해가면,set에서 중복이 제거되어 마지막에 set의 길이를 정답으로 제출정답 코드import java.util.*;class Solution { public int solution(int[] elements) { int[] eles =..
[프로그래머스] LV2. 영어 끝말잇기 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/12981?language=java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이흔히들 알고 있는 끝말잇기와 동일하게 끝말을 잇지 못하거나 이전에 나왔던 단어를 사용하면 틀리는 문제!이전에 나왔던 단어인지 중복 체크를 할 때 Set이나 ArrayList를 사용할 수 있다.정답(answer)이 나왔을 때 바로 탐색을 중단하여 제출해야 한다 (이걸 안해서 두 번 틀림 ㅠ,,) 정답 코드더보기import java.util.*;class Soluti..
[프로그래머스] LV2. 점프와 순간 이동 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이처음엔 DP 문제인가? 했는데 N의 최댓값이 10억이길래 DFS 문제인가? 했는데 결국은 그냥 단순 구현 문제였다.순간 이동을 해서 N이 될 수 있는 경우에는 순간 이동을 하고, 순간 이동을 할 수 없을 때는 1칸씩만 점프한다.정답 코드public class Solution { public int solution(int n) { int ans = 0; whi..
[프로그래머스] LV2. 멀리 뛰기 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이dp를 이용해서 풀었다 주의 할 점은 1234567을 나눈 나머지를 정답으로 제출 해야 하는데마지막에 나누는 것이 아니라 dp 테이블에 저장 할 때 나눠야 한다는 것!정답 코드class Solution { public long solution(int n) { long answer = 0; int dp[] = new int[2000]; ..
[프로그래머스] LV2. 카펫 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/42842?language=java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이문제 분류는 완전 탐색으로 되어 있지만 완전 탐색 보다는 수학 문제에 가까운 것 같다!정답 코드class Solution { public int[] solution(int brown, int yellow) { int[] answer = new int[2]; for(int i = 1; i
[프로그래머스] LV2. 짝지어 제거하기 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이stack을 이용해서 푸는 문제 stack 사용법 참고https://inpa.tistory.com/entry/JCF-%F0%9F%A7%B1-Stack-%EA%B5%AC%EC%A1%B0-%EC%82%AC%EC%9A%A9%EB%B2%95-%EC%A0%95%EB%A6%AC 🧱 자바 Stack 구조 & 사용법 정리Stack 컬렉션 스택(Stack)의 사전적 정의는 '쌓다', '더미' 로서 접시 ..