Algorithm
-
(Java) Programmers 하노이의 탑Algorithm 2023. 12. 3. 11:49
- 목차 문제 소개. "프로그래머스의 하노이의 탑" 문제의 웹 링크를 하단에 첨부합니다. https://school.programmers.co.kr/learn/courses/30/lessons/12946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명. 하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다. 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대로 쌓여 있습니다. 게임의 목적은 다음 두 가지 조건을 만족시키면서, 한 기둥에 꽂힌 원판들을..
-
(Java) Programmers 줄 서는 방법Algorithm 2023. 12. 3. 09:36
- 목차 문제 링크. https://school.programmers.co.kr/learn/courses/30/lessons/12936# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명. n명의 사람이 일렬로 줄을 서고 있습니다. n명의 사람들에게는 각각 1번부터 n번까지 번호가 매겨져 있습니다. n명이 사람을 줄을 서는 방법은 여러가지 방법이 있습니다. 예를 들어서 3명의 사람이 있다면 다음과 같이 6개의 방법이 있습니다. [1, 2, 3] [1, 3, 2] [2, 1, 3] [2, 3, 1] [3, 1, 2] [3, 2, 1] 사람의 수 n과..
-
(Java) Programmers 예상 대진표Algorithm 2023. 12. 2. 00:20
- 목차 소개. "프로그래머스의 예상 대진표 문제" 의 웹링크입니다. https://school.programmers.co.kr/learn/courses/30/lessons/12985# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 분석. 모든 참여자들은 토너먼트 형식의 승부를 합니다. 한 대진에서 2명의 참여자가 승부를 하고, 한 명만이 다음 라운드에 참여할 수 있습니다. 이를 구현하기 위해서 Queue 를 사용합니다. Queue 에서 2명씩 poll 하여 한명을 다시 add 합니다. 다만, a 와 b 는 반드시 승리하기 때문에 a 또는 b 는 반..
-
Programmers 다음 큰 숫자Algorithm 2023. 12. 1. 23:31
- 목차 소개. "프로그래머스 다음 큰 숫자" 에 대한 문제 설명과 풀이를 작성해보려고 합니다. 아래는 관련 웹링크입니다. https://school.programmers.co.kr/learn/courses/30/lessons/12911 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이. 조건 1, 2, 3 을 만족하는 완전 탐색을 수행합니다. 그리고 조건 2 에 해당하는 1의 갯수를 검색하는 방식은 java Integer.bitCount 를 사용합니다. 문제 풀이. class Solution { public int solution(int n) {..
-
(Java) Programmers 올바른 괄호Algorithm 2023. 12. 1. 12:16
- 목차 문제 소개. https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이. 문자열 s 의 괄호 패턴을 추적하기 위해서 스택을 사용합니다. 스택에는 "(" 문자열이 추가될 수 있구요. "(" 이 스택에 존재하는 상황에서 ")" 문자를 만나게 되면, 스택를 Pop 합니다. 이런 식으로 문자열을 순회하게 되면, 올바른 문자열 s 인 경우에는 스택이 비어있게 되고, 올바르지 않은 문자열 s 의 경우에는 스택에 괄호 문자들이 남아있게 됩니다. <..
-
(Java) Programmers 124 나라의 숫자Algorithm 2023. 12. 1. 11:52
- 목차 문제 소개. "Programmers 의 124 나라의 숫자"에 대한 링크를 아래에 첨부하겠습니다. https://school.programmers.co.kr/learn/courses/30/lessons/12899 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 먼저 124나라의 진법의 패턴을 파악을 파악해야합니다. 1 의 경우. a) 3으로 나눈 나머지는 1이며, 124 진법으로 표현하면 1이 됩니다. 5 의 경우. a) 3으로 나눈 몫과 나머지는 1, 2 입니다. b) 몫인 1을 3으로 한번 더 나눕니다. 이때 몫과 나머지는 0, 1 이 됩니다...
-
Programmers 게임 맵 최단거리Algorithm 2023. 12. 1. 10:59
- 목차 소개. 아래는 Programmers 의 게임 맵 최단거리 문제의 웹링크입니다. https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이. 캐릭터가 시작점인 (0,0) 에서 목적지인 (m,n) 까지의 최단거리를 구하는 문제입니다. 최단거리를 구하기 위해서 그래프 탐색 알고리즘을 사용합니다. 저는 BFS 를 사용하였구요. BFS 로 탐색하는 과정에서 maps 에 해당하는 배열에 이동거리 값을 업데이트하였습니다. import..
-
Programmers 카카오 프렌즈 컬러링북Algorithm 2023. 12. 1. 10:36
- 목차 소개. 해당 문제의 링크는 아래에 첨부해두었습니다. https://school.programmers.co.kr/learn/courses/30/lessons/1829 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용. 카카오 프렌즈 컬러링북 출판사의 편집자인 어피치는 네오에게 컬러링북에 들어갈 원화를 그려달라고 부탁하여 여러 장의 그림을 받았다. 여러 장의 그림을 난이도 순으로 컬러링북에 넣고 싶었던 어피치는 영역이 많으면 색칠하기가 까다로워 어려워진다는 사실을 발견하고 그림의 난이도를 영역의 수로 정의하였다. (영역이란 상하좌우로 연결된 ..
-
[Programmers] 카테고리 별 상품 개수 구하기 (SQL, Left, 문자 추출)Algorithm 2023. 11. 30. 17:36
- 목차 문제 설명. https://school.programmers.co.kr/learn/courses/30/lessons/131529 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 다음은 어느 의류 쇼핑몰에서 판매중인 상품들의 정보를 담은 PRODUCT 테이블입니다. PRODUCT 테이블은 아래와 같은 구조로 되어있으며, PRODUCT_ID, PRODUCT_CODE, PRICE는 각각 상품 ID, 상품코드, 판매가를 나타냅니다. PRODUCT_ID INTEGER FALSE PRODUCT_CODE VARCHAR(8) FALSE PRICE INTEGER ..
-
Stack 으로 조합 구현하기.Algorithm 2023. 11. 25. 10:36
- 목차 아이디어. 스택으로 조합을 구현하는 방법에 대해서 설명하고자합니다. 1 부터 5 까지의 숫자를 3개의 조합들로 나타내려고 합니다. 저희가 원하는 결과는 아래와 같습니다. 1,2,3 1,2,4 1,2,5 1,3,4 1,3,5 1,4,5 2,3,4 2,3,5 2,4,5 3,4,5 각 조합의 자릿수는 첫번째, 두번째, 세번째 로 표현할 때, 조합 1,2,3 은 첫번째 값이 1, 두번째 값이 2, 세번째 값이 3 입니다. 조합 3,4,5 은 첫번째 값이 3, 두번째 값이 4, 세번째 값이 5 입니다. 조합이 구성되는 패턴을 보면 세번째 값이 1씩 증가하게 되고 세번째 값이 최대값에 도달하게 되면 두번째 값이 1씩 증가하는 방식입니다. 이는 N 번째 값을 1 씩 incr..