본문 바로가기

Algorithm

(29)
[프로그래머스] 징검다리 건너기 카테고리 이분 탐색 나만의 카테고리 이분 탐색 문제 링크 programmers.co.kr/learn/courses/30/lessons/64062 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr 요점 이분 탐색을 구현할 수 있는지를 확인하는 문제 개인적으로 5만번 이상의 반복을 시키는 문제는 드물다고 생각 => 그 이상이라면 다른 방법을 찾아야한다 이분 탐색 문제의 Target 수가 없고 최대값을 찾는 문제라면 보통 배열 기준이 아닌 문제의 정답에 기준을 맞춰야한다. 참고 지식 대개 이분탐색의 Target이 정해져 있다면 탐색의 끝은 mid == target, 아니라면 min > max 일 때 끝이다 풀이 (Java) cla..
[프로그래머스] 로또의 최고 순위와 최저 순위 (Java) 카테고리 기본 알고리즘 나만의 카테고리 아이디어 짜기 문제 링크 programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 요점 int 배열의 순회 방법 중 어느 방법이 좋은지 비교해보자 참고 지식 [Java] IntStream.of(int[]) 풀이 (Java) // 추천 import java.util.*; class Solution { public int[] solution(int[]..
[프로그래머스] 3진법 뒤집기(Java) 카테고리 기본 알고리즘 나만의 카테고리 아이디어 짜기 문제 링크 programmers.co.kr/learn/courses/30/lessons/68935 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr 요점 진법 변환 방법에 대해 알아야한다. String 뒤집는 방법에 대해 알아야한다. Integer.parseInt(String str, int radix) 참고 지식 [Java] Integer.parseInt(String str, int radix) 풀이 (Java..
[프로그래머스] 두 개 뽑아서 더하기(C++, Java) 카테고리 기본 알고리즘 나만의 카테고리 함수 활용 문제 문제 링크 programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 요점 중복제거에 대한 요령이 필요하다 (Set활용, Sort와 unique활용 등) 참고 지식 [C++] sort(start, end) [C++] unique(start, end) [Java] Set 컨테이너 풀이 (C++) #include #include #in..
[프로그래머스] 도둑질 (Java) 카테고리 DP (동적계획법) 나만의 카테고리 간단한 DP 문제 링크 programmers.co.kr/learn/courses/30/lessons/42897?language=java 코딩테스트 연습 - 도둑질 도둑이 어느 마을을 털 계획을 하고 있습니다. 이 마을의 모든 집들은 아래 그림과 같이 동그랗게 배치되어 있습니다. 각 집들은 서로 인접한 집들과 방범장치가 연결되어 있기 때문에 인접한 programmers.co.kr 요점 3번째 부터 뽑는 경우의 수를 생각해야한다 참고 지식 Math.max() 풀이 (Java) import java.util.*; class Solution { public int solution(int[] money) { int answer = 0; int[] firstDp = ne..
[프로그래머스 SQL] 있었는데요 없었습니다 카테고리 SQL - JOIN 나만의 카테고리 비교 연산자 사용 문제 링크 programmers.co.kr/learn/courses/30/lessons/59043 코딩테스트 연습 - 있었는데요 없었습니다 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 요점 DATE 형태 비교 방식 공부 참고 지식 CDATA - MyBatis 사용시 비교연산자를 문자열로 인식시키기 위해서 사용 풀이 (MySQL & Oracle) SELECT AI.ANIMA..
[프로그래머스 SQL] 없어진 기록 찾기 카테고리 SQL - JOIN 나만의 카테고리 서브 쿼리 문제 링크 programmers.co.kr/learn/courses/30/lessons/59042 코딩테스트 연습 - 없어진 기록 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 요점 OUTER_JOIN 아니면 서브쿼리도 가능하다 참고 지식 OUTER_JOIN SubQuery 풀이 (MySQL & Oracle) // WHERE 절 서브쿼리 활용 SELECT ANIMAL_ID, ..
[프로그래머스] 주식가격 (C++) 카테고리 스택/큐 나만의 카테고리 스택/큐, Vector 문제 링크 programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 요점 각각 순회해서 처리하는 편이 간단하고 효율성 테스트를 통과할 수 있다. 참고 지식 Vector (C++) 풀이 (C++) #include #include using namespace std; vector solution(vector prices) { vector ..
[프로그래머스] 방문 길이 (Java) 카테고리 배열 나만의 카테고리 로직 짜기 문제 링크 programmers.co.kr/learn/courses/30/lessons/49994 코딩테스트 연습 - 방문 길이 programmers.co.kr 요점 배열 활용 길은 양쪽에서 지나가는 경우를 모두 확인해야한다 참고 지식 String.length() - Java 풀이 (Java) class Solution { public boolean[][][][] visitedPoint = new boolean[11][11][11][11]; public int[] moveX = {-1, 1, 0, 0}; public int[] moveY = {0, 0, 1, -1}; public int solution(String dirs) { int answer = 0; int..
[프로그래머스] 거스름돈 (C++, Java) 카테고리 동적계획법 (dynamic programming) 나만의 카테고리 동적계획법, 기억해둘만한 문제 문제 링크 programmers.co.kr/learn/courses/30/lessons/12907 코딩테스트 연습 - 거스름돈 Finn은 편의점에서 야간 아르바이트를 하고 있습니다. 야간에 손님이 너무 없어 심심한 Finn은 손님들께 거스름돈을 n 원을 줄 때 방법의 경우의 수를 구하기로 하였습니다. 예를 들어서 손님께 5 programmers.co.kr 요점 DFS와 헷갈릴 수 있지만 잘 기억해놓고 DP로 풀자 표를 그려서 참고 지식 Arrays.sort() - Java 풀이 (C++) #include #include #include using namespace std; int solution(in..