today's alogrithm 18

[프로그래머스] 2020 카카오 인턴십 > 보석 쇼핑 - JAVA

https://programmers.co.kr/learn/courses/30/lessons/67258?language=java# 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr 오늘은 프로그래머스에서 제공한 코딩테스트 문제 중 2020년 카카오 인턴십 문제를 풀어보았다. 이 문제는 Level 3에 해당되며, 슬라이딩 윈도우 알고리즘을 활용해야 한다. 슬라이딩 윈도우 알고리즘의 설명은 따로 작성하여 올리겠다. 가장 먼저 문제의 풀이를 함께 확인해보자. 우선 메인 코드에 들어가기 앞서, 변수에 대하여 이야기 해보겠다. int min = gems.length; H..

today's alogrithm 2021.08.29

[프로그래머스] 줄서는 방법 - Java

https://programmers.co.kr/learn/courses/30/lessons/12936?language=java 코딩테스트 연습 - 줄 서는 방법 n명의 사람이 일렬로 줄을 서고 있습니다. n명의 사람들에게는 각각 1번부터 n번까지 번호가 매겨져 있습니다. n명이 사람을 줄을 서는 방법은 여러가지 방법이 있습니다. 예를 들어서 3명의 사람 programmers.co.kr 오늘은 프로그래머스의 Level3의 연습문제 중 하나인 줄 서는 방법 문제를 풀어보았다. 처음 시도에는 브루트포스 방법을 사용했지만, 효율에서 터져서 어떠한 방법으로 풀어볼까 고민하다가 수학적으로 풀어보려고 노력했다. 숫자의 사전식 순서로 배열하기 때문에 간단하게 코드를 짤 수 있었다. 문제에선 n값과 k값을 받는데 n은 ..

today's alogrithm 2021.08.25

[BOJ] 4375번 1 - JAVA

https://www.acmicpc.net/problem/4375 4375번: 1 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오. www.acmicpc.net 오늘 풀어본 문제는 한달전 풀었다가 실패했던 문제다. 참 다양하게 틀렸는데 시간초과, 런타임 에러(ArrayIndexOutOfBounds, NumberFormat) 등등 오늘도 다시 풀었을때 네번에 실패를 맛봤다.. 이번엔 메모리 초과,, 우선 런타임 에러 NumberFormat같은 경우 숫자 범위를 long타입으로 잡았더니 범위가 초과되서 발생한 에러였다. 이를 해결하기 위해 BigInteger 객체를 사용했다. 그러나 문제는 아래의 코드를 작성했을 때는..

today's alogrithm 2021.06.25

[BOJ] 2470번 두 용액 - JAVA

https://www.acmicpc.net/problem/2470 2470번: 두 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00 www.acmicpc.net 오늘 두번째로 풀어본 문제는 약 한달전 풀었다가 실패했던 두 용액이라는 문제이다. 규칙은 간단하다. 두 용액 값을 더하여 0에 가장 가까운 두 용액을 찾는 문제다. 호기롭게 도전했던 지난달, 시간초과라는 쓴맛을 맛봤다.. 기본적으로 이분 탐색 방법을 사용하여 문제를 풀었다. 첫 도전때 실패 원인은 쓸데없이 많이 발생하는 연산 문제이다. 그래서 이분탐색 부분을 다시..

today's alogrithm 2021.06.22

[BOJ] 1212번 8진수 2진수 - JAVA

https://www.acmicpc.net/problem/1212 1212번: 8진수 2진수 첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다. www.acmicpc.net 약 한달 전 런타임에러나서 포기하고 다른문제 풀다가 오늘 해결했다. 처음 문제를 풀때 수의 범위를 생각하지 않고 자바에 있는 내장함수를 이용했는데, 8진수를 10진수로 바꾸는 과정에서 수가 너무 커져 런타임에러가 발생했다. 그래서 귀찮아서 안풀고 있었는데 오늘 풀었다. import java.util.*; class Main{ public static void main (String[] args){ Scanner sc = new Scanner(System.in); String n = sc.next(); /..

today's alogrithm 2021.06.22

[BOJ] 12852번 1로 만들기 2 - JAVA

https://www.acmicpc.net/problem/12852 12852번: 1로 만들기 2 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 자연수 N이 주어진다. www.acmicpc.net 이번 문제는 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 이 문제의 진화된 버전이라고 생각한다. 1로 만들기의 경우 재귀와 dp를 같이 써서 풀었다. 최소 횟수만 나타나면 되는 문제라서 가능했는데 1로만들기 2 같은 경우 어떤 숫자들을 지나갔는지가 함께 출력이 되야해서 고민하는 시간을 가졌다. 처음에는 1로 만들기의 코드를 응용해서 문제를 풀려고 했다...

today's alogrithm 2021.06.21

[BOJ] 2502번 떡 먹는 호랑이 - JAVA

https://www.acmicpc.net/problem/2502 2502번: 떡 먹는 호랑이 첫줄에 첫 날에 준 떡의 개수 A를 출력하고 그 다음 둘째 줄에는 둘째 날에 준 떡의 개수 B를 출력한다. 이 문제에서 주어진 D, K에 대해서는 항상 정수 A, B (1≤A≤B)가 존재한다. www.acmicpc.net 오늘 풀어본 문제는 백준의 떡 먹는 호랑이 기본적으로 다이나믹 프로그래밍 방법으로 푸는데 초깃값을 설정하는 것이 문제다. 나는 while문으로 초깃값을 설정하도록 했다. 처음에는 이분법으로 middle값을 가지고 문제를 풀다가 안되서 그냥 하나씩 값을 줄여줬다. 입력 값의 범위가 크지 않아서 가능한 방법인데,, 만약 범위가 크다면,,, 다른 방법을 찾아봐야 할것 같다. import java.u..

today's alogrithm 2021.06.18

[BOJ] 1254번 팰린드롬 만들기 - JAVA

https://www.acmicpc.net/problem/1254 1254번: 팰린드롬 만들기 동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는 www.acmicpc.net 오늘 풀어본 문제는 실버 티어 1,2 등급에 있는 문제인 팰린드롬 만들기~ 첫 시도에 실패를 맛보고 좀 더 고민한뒤 풀어서 맞췄다. 바보같이 StringBuffer에다가 append를 이상하게 하고있었다. import java.util.*; class Main{ public static void main (String[] args){ Scanner sc = new Scanner(System.in); S..

today's alogrithm 2021.06.17

[BOJ] 이분 탐색 단계 - JAVA

이분 탐색 단계 수 찾기 숫자 카드2 랜선 자르기 나무 자르기 ▷수 찾기 www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net import java.io.*; import java.util.*; public class Main{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new Inp..

today's alogrithm 2021.02.06

[프로그래머스] SQL 고득점 Kit - oracle sql

■ IS NULL KIT level 1 이름 없는 동물의 아이디 level 1 이름 있는 동물의 아이디 level 2 NULL 처리 ▷ level 1 이름 없는 동물의 아이디 [oracle] programmers.co.kr/learn/courses/30/lessons/59039 코딩테스트 연습 - 이름이 없는 동물의 아이디 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr SELECT ANIMAL_ID FROM ANIMAL_INS WHER..

today's alogrithm 2021.02.04