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과..
-
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 의 경우에는 스택에 괄호 문자들이 남아있게 됩니다. <..
-
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] 카테고리 별 상품 개수 구하기 (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..
-
[Programmers] 두 원 사이의 정수 쌍 ( 좌표 )Algorithm 2023. 9. 28. 08:18
- 목차 문제 설명. https://school.programmers.co.kr/learn/courses/30/lessons/181187?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr x축과 y축으로 이루어진 2차원 직교 좌표계에 중심이 원점인 서로 다른 크기의 원이 두 개 주어집니다. 반지름을 나타내는 두 정수 r1, r2가 매개변수로 주어질 때, 두 원 사이의 공간에 x좌표와 y좌표가 모두 정수인 점의 개수를 return하도록 solution 함수를 완성해주세요. ※ 각 원 위의 점도 포함하여 셉니다. 입출력 예 설명 문제 분..
-
[Programmers] 숫자 카드 나누기 (GCD, 유클리드 호제법, Divisor)Algorithm 2023. 9. 22. 21:21
- 목차 문제 설명. https://school.programmers.co.kr/learn/courses/30/lessons/135807 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 철수와 영희는 선생님으로부터 숫자가 하나씩 적힌 카드들을 절반씩 나눠서 가진 후, 다음 두 조건 중 하나를 만족하는 가장 큰 양의 정수 a의 값을 구하려고 합니다. 철수가 가진 카드들에 적힌 모든 숫자를 나눌 수 있고 영희가 가진 카드들에 적힌 모든 숫자들 중 하나도 나눌 수 없는 양의 정수 a 영희가 가진 카드들에 적힌 모든 숫자를 나눌 수 있고, 철수가 가진 카드들에 적..
-
재귀함수 (Recursive Function) 이해하기Algorithm 2023. 9. 21. 17:23
- 목차 관련된 글 Call Stack 이해하기 Call Stack 이해하기 - 목차 * 소개 어떤 프로그램을 사용한다는 의미에 대해서 생각해 볼 필요가 있습니다. 예를 들어, 크롬같은 웹 브라우저를 사용한다거나 Spring 같은 서버를 실행시킨다거나 하는 행동들을 말이 westlife0615.tistory.com 소개. 재귀함수란 어떤 함수가 자기 자신을 호출하는 형태의 함수입니다. 왜 자기 자신의 호출할까요? 재귀함수 형태로 해결할 수 있는 문제들이 있는데요. 대표적인 문제가 - 팩토리얼 구현하기 - 피보나치 수열의 합구하기 - binary tree search 등이 있습니다. 이 모두 공통점이 있는데요. List 를 활용하는 문제라는 점입니다. 필요충분조건은 아니지만 List 자료구조를 사용하는 알..