프로그래머스 알고리즘
-
과일로 만든 아이스크림 고르기 Oracle프로그래머스 알고리즘 2023. 11. 7. 23:20
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 상반기 아이스크림 총주문량이 3,000보다 높으면서 아이스크림의 주 성분이 과일인 아이스크림의 맛을 총주문량이 큰 순서대로 조회하는 SQL 문을 작성해주세요. 상반기 아이스크림 총주문량이 3,000보다 높은 아이스크림 맛은 chocolate, strawberry, melon, white_chocolate입니다. 이 중에 아이스크림의 주 성분이 과일인 아이스크림 맛은 strawberry와 melon이고 총주문량이 큰 순서대로 아이스크림 맛을 조회하면 melon, strawberry 순으로 조회되어야 합니다..
-
주식가격 JAVA프로그래머스 알고리즘 2023. 10. 21. 16:44
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1초단위로 주식가격이 적혀있는 prices[] 에서 주식가격이 떨어지는 시간을 각각 구한 배열 anwer를 구하는 문제이다. 예를 들어 prices = {1, 2, 3, 2, 3}는 answer = {4, 3, 1, 1, 0} 이다. 1초 시점의 ₩1은 끝까지 가격이 떨어지지 않았습니다. 2초 시점의 ₩2은 끝까지 가격이 떨어지지 않았습니다. 3초 시점의 ₩3은 1초뒤에 가격이 떨어집니다. 따라서 1초간 가격이 떨어지지 않은 것으로 봅니다. 4초 시점의 ₩2은 1초간 가격이 떨어지지 않았습니다. 5초 시..
-
조합 JAVA프로그래머스 알고리즘 2023. 10. 20. 22:12
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 옷의 종류를 여러가지 조합해서 경우의 수를 구하는 문제이다. 단 같은 종류의 옷은 2개 이상 입으면 안되며, 최소 1개의 옷만 입어도 경우의 수가 카운트 된다. 예를 들어 {{"yellow_hat", "headgear"}, {"blue_sunglasses", "eyewear"}, {"green_turban", "headgear"}} 이런식의 2차원 clothes 배열이 주어지면 "headgear"에 2종류, "eyewear"에 1종류의 옷이 있다. 단순히 모든 종류의 옷을 입어야 한다면 2 * 1 로 2..
-
N으로 표현 JAVA프로그래머스 알고리즘 2023. 7. 19. 00:39
https://school.programmers.co.kr/learn/courses/30/lessons/42895 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아래와 같이 5와 사칙연산만으로 12를 표현할 수 있다. 12 = 5 + 5 + (5 / 5) + (5 / 5) 12 = 55 / 5 + 5 / 5 12 = (55 + 5) / 5 5를 사용한 횟수는 각각 6,5,4 입니다. 그리고 이중 가장 작은 경우는 4 숫자 N과 number가 주어질 때, N과 사칙연산을 통해 N의 사용횟수가 최소가 되도록 number를 만드는 것이다. 처음에는 백트레킹으로..
-
큰 수 만들기 JAVA프로그래머스 알고리즘 2023. 7. 17. 15:48
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr String 형식으로 숫자가 최대 1백만 길이가 올 수 있다. 그 중에서 k개의 숫자를 제거해 남은 문자열중 가장 큰 문자열을 출력하면 되는 문제이다. 예를 들어 문자열이 "4177252841" 총 10개의 문자열이고, k = 4라면 최종 6개의 문자열 중에 가장 큰 수를 출력하는 것이다. 정답은 "775841" 이다. 이 문제에서 어려웠던 점은 3가지 이다. 1) 어떻게 최댓값을 구해야 하는가? 2) 문자열의 인덱스가 왔다갔다 하므로 일반화 식이 필요하다. 2) 마지막에 문자열을 출력하는데 String..
-
구명보트 (c++)프로그래머스 알고리즘 2023. 5. 10. 16:46
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 구명보트에는 최대 2명이 탈 수 있고, 몸무게가 limit을 넘으면 안됩니다. 구명보트를 최소로 하는 갯수를 구하라. 처음에는 단순히 people를 정렬해서 구하는 줄 알았지만, 시간초과가 나오게 되고 검색을 통해 투 포인터를 사용하는 것을 알게 되었다. 오름차순으로 정렬했기 때문에 가장 왼쪽에는 작은 몸무게, 가장 오른쪽은 큰 몸무게 이다. l, r을 사용했다. people[l] + people[r] limit 이면 가장 큰 몸무게는 혼자 구명보트를 타야하기 때문에 r--만 해주고 구명보트를 늘려준다...
-
전화번호 목록 JAVA프로그래머스 알고리즘 2023. 5. 5. 17:07
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 위와 같이 전화번호를 String형으로 주어지는데 각 전화번호를 비교해 접두어가 같은 String이 있으면 false를 return하고 그렇지 않으면 true를 return하는 것이다. 접두어는 맨앞의 글자만 같아도 접두어가 같은것이다. import java.util.*; class Solution { public boolean solution(String[] phone_book) { Mapm = new HashMap(); for(int i=0;i
-
게임 맵 최단거리 JAVA프로그래머스 알고리즘 2023. 5. 5. 15:39
문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr BFS를 구현하는 기본 문제이다. 시작점은 (1, 1)이고, 끝점은 (행의 크기, 열의 크기)이다. import java.util.*; import java.io.*; class Solution { int []dx = {0, 1, -1, 0}; int []dy = {1, 0, 0, -1}; int answer = 0; public int solution(int[][] maps) { boolean [][]visited = new boolean[maps.length][maps[0].length]; Queue..