본문 바로가기

Algorithm

(28)
[프로그래머스] 로또의 최고 순위와 최저 순위 (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..
[프로그래머스] 불량 사용자 (Java) 카테고리 DFS 나만의 카테고리 DFS, SET 문제 링크 programmers.co.kr/learn/courses/30/lessons/64064 요점 Set 사용 방법과 특징에 대해 알아야 좋다 DFS 방식에 대해 알아야한다 꼭 정규식을 사용하지 않아도 되지만 유용하다 참고 지식 Set 메서드 정규식 풀이 (Java) import java.util.regex.Pattern; import java.util.*; class Solution { private int bannedIdSize; private HashSet result = new HashSet(); public int solution(String[] user_id, String[] banned_id) { bannedIdSize = banned_i..