Algorithm
-
[알고리즘] 프로그래머스 1단계 - 폰켓몬Algorithm 2024. 5. 2. 16:24
프로그래머스 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/1845 문제 설명당신은 최대한 다양한 종류의 폰켓몬을 가지길 원하기 때문에, 최대한 많은 종류의 폰켓몬을 포함해서 N/2마리를 선택하려 합니다. N마리 폰켓몬의 종류 번호가 담긴 배열 nums가 매개변수로 주어질 때, N/2마리의 폰켓몬을 선택하는 방법 중, 가장 많은 종류의 폰켓몬을 선택하는 방법을 찾아, 그때의 폰켓몬 종류 번호의 개수를 return 하도록 solution 함수를 완성해주세요. 예시nums[3,3,3,2,2,4] result3 distinct api를 통한 풀이 방법import java.util.stream.IntStream;class Solution { ..
-
[묘공단] 코딩 테스트 합격자 되기 - 집합Algorithm 2024. 5. 2. 15:18
코딩 테스트 합격자 되기 자바편책 제목 : 코딩 테스트 합격자 되기 자바편지은이 : 김희성 집합개념집합은 순서와 중복이 없는 원소들을 갖는 자료구조를 의미한다.예를들어 구성이 {1, 6, 6, 6, 5, 3}이면 이는 집합으로 생각할 때 중복을 제외해 {1, 6, 4, 3}으로 생각해야한다.일반적으로 집합 자료구조에서 서로 다른 두 집합의 관계를 상호 배타적 집합이라고 한다.상호 배타적 집합은 두집합 간의 교집합이 없음을 의미한다. 상호 배티적 집합 특징이 특징은 추후 그래프 알고리즘에서 많이 활용하기 때문인데 그래프 알고리즘은 흔히 사이클을 확인 하는 일이 많기 때문이다.그 작업에서 상호 배타적 집합 개념을 활용하게 된다. 그 외에 위 특징이 활용된는 범위이미지 분할 : 이미지를 서로 다른 부분으로 나..
-
[알고리즘] 프로그래머스 1단계 - 수박수박수박수박수박수?Algorithm 2024. 5. 1. 23:46
프로그래머스 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/12922 문제 설명길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 예시n3 return"수박수" class Solution { public String solution(int n) { // 수가 많은경우 StringBuilder를 통해서 한개의 객체로 수정작업이 유리 String answer = " "; // 마지막 글자에 따라서 이어붙이기 for(int i = 0; i
-
[알고리즘] 프로그래머스 1단계 - 공원 산책Algorithm 2024. 4. 30. 09:40
프로그래머스 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/172928 문제 설명이 문제는 강아지 로봇이 최종적으로 이동한 위치를 결과로 리턴해주는 문제다park배열에서 'S'가 시작 위치이며 O는 이동할 수있는 길이고 X는 장애물을 의미하며 routes의 이동거리에 장애물이 포함되면 이동 자체가 취소 된다. E,W,S,N은 동서남북을 의미하고 한칸 띄고 이동칸의 수가 적혀있다. 장애물과 마찬가지로 park 배열의 범위를 벗어나면 그 이동 또한 취소로 간주된다. 예시park["SOO","OOO","OOO"] routes["E 2","S 2","W 1"] result[2,1] import java.util.LinkedList;import j..
-
[알고리즘] 프로그래머스 1단계 - 붕대감기Algorithm 2024. 4. 29. 15:29
프로그래머스 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/250137 문제 설명이 문제는 붕대배열과, 최대 체력, 공격 배열이 주어진다.bandage라는 배열 [ 5, 1, 5 ]에 0번째는 5초라는 시간을 의미하고 이 5초를 다 채운경우 2번째 인자인 5를 추가 회복 점수를 받을 수 있다.1번 인자의 숫자 1은 기본 1초당 회복 점수를 의미한다. 회복 도중 공격을 당하면 다시 1초부터 5초까지 기다려야 추가 회복 점수를 받을 수 있다.health의 경우 시작하는 체력 점수이면서 최대가질수 있는 체력점수이고 이 이상 회복할 수 없다.attacks 배열은 이중배열로 몬스터로 부터 공격을 당한 경우 받는 데미지로 [2, 10] 이 첫번째 이..
-
[알고리즘] 프로그래머스 2단계 - 메뉴 리뉴얼Algorithm 2024. 4. 29. 15:25
프로그래머스 문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/72411 문제 설명레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다.order[] 배열에 고객이 주문한 음식이 String 배열로 담겨있고 String 배열에 각 캐릭터는 단품 음식을 의미합니다.예시 "ABCFG "의 경우 "A" 단품 음식 "B" 단품 음식 ..."G" 단품 형태로 되어있으며 여기서 course[]라는 int 배열이 주어질때 이 값을 통해서각 단품음식을 조합하여서 course에서 가장 많은 단품음식을 배열에 담아 리턴한다. 단 값이 같은 경우 배열에 같이 담고 최종 리턴시 알파벳 오름차순으로 리턴한다. 예..
-
[알고리즘] 코딩 테스트 합격자 되기 - 해시, 트리Algorithm 2024. 4. 26. 09:32
책 제목 : 코딩 테스트 합격자 되기 자바편지은이 : 김희성 해시개념 : 데이터를 찾기위해서 처음부터 순차적으로 탐색하지 않고 해시함수를 사용하여 변환한 값을 인덱스로 삼아 키와 값을 저장해서 빠른 데이터 탐색을 제공하는 자료 구조이다. 해시 특징해시는 단방향으로 동작하며 키를 통해서 값을 찾을 수 있지만 값을 통해서 키를 찾을 수 없다.해시테이블 : 해시의 키와 대응한 값이 저장되있는 공간버킷 : 해시 테이블의 각 데이터 해시 예제 문제문제 설명 : 구매를 원하는 항목(wantList)과 그 항목에 해당되는 numbers가 있는데 마트에 할인 항목 리스트 14개중 차례대로 10개씩 1일 한번 할인 행사를 한다. 따라서 구매항목과 할인 항목이 일치하는 횟수를 체크하는 문제다.구매항목의 총합은 10개이며 ..