[BOJ] 백준 2606번 : 바이러스 - Java
·
Algorithm Solving/Java
https://www.acmicpc.net/problem/2606 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayDeque;import java.util.ArrayList;import java.util.List;import java.util.Queue;import java.util.StringTokenizer;public class Main { static int count, num, connections; static boolean[] visited; static List[] computers; public static v..
[BOJ] 백준 1962번 : 그림 - Java
·
Algorithm Solving/Java
https://www.acmicpc.net/problem/1926 BFS 풀이import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.util.ArrayDeque;import java.util.Queue;import java.util.StringTokenizer;public class Main { // 좌표(position) 클래스 선언, 생성자 생성 static class Pos { int y, x; public Pos(int y,..
[programmers] Java Lv. 2 - 다음 큰 숫자
·
Algorithm Solving/Java
문제자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다.조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다.조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다.조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다.예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다.자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요. 제한 사항n은 1,000,000 이하의 자연수 입니다. 입출력 예입출력 예 설명입출력 예#1문제 예시와 같습니다.입출력 예#215(1111)의 다음 큰 숫자는 23(10111)입니다.풀이class Solution { ..
[programmers] Java Lv. 2 - 피보나치 수
·
Algorithm Solving/Java
문제피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다.예를들어F(2) = F(0) + F(1) = 0 + 1 = 1F(3) = F(1) + F(2) = 1 + 1 = 2F(4) = F(2) + F(3) = 1 + 2 = 3F(5) = F(3) + F(4) = 2 + 3 = 5와 같이 이어집니다.2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요. 제한 사항n은 2 이상 100,000 이하인 자연수입니다. 입출력 예입출력 예 설명피보나치수는 0번째부터 0, 1, 1, 2, 3, 5, ... 와 같이 이어집니다.풀이재귀를 이용한 풀이는..
[programmers] Java Lv. 2 - 숫자의 표현
·
Algorithm Solving/Java
문제Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다.1 + 2 + 3 + 4 + 5 = 154 + 5 + 6 = 157 + 8 = 1515 = 15자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요. 제한사항n은 10,000 이하의 자연수 입니다. 입출력 예풀이위 문제는 아래 규칙을 이용해 풀이 할 수 있다.class Solution { public int solution(int n) { int count = 1; int i = 1; ..
[programmers] SQL Lv. 2 - 동명 동물 수 찾기
·
Algorithm Solving/SQL
문제ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성해주세요. 이때 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회해주세요. 예시예를 들어 ANIMAL_INS 테이블이 다음과 같다면Raven 이름은 2번 쓰였습니다.Lucy 이름은 3번 쓰였습니다Sha..
[programmers] Java Lv. 2 - 올바른 괄호
·
Algorithm Solving/Java
문제괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다.예를 들어"()()" 또는 "(())()" 는 올바른 괄호입니다.")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 제한사항문자열 s의 길이 : 100,000 이하의 자연수문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. 입출력 예풀이주어진 문자열을 탐색할 때 '('를 만나면 queue에 enqueue하고, ')'를 만나면 dequeue를 해서 queue가 비어있으면 ..
[programmers] SQL Lv. 2 - 최솟값 구하기
·
Algorithm Solving/SQL
문제ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.동물 보호소에 가장 먼저 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요. 예시예를 들어 ANIMAL_INS 테이블이 다음과 같다면가장 먼저 들어온 동물은 Jack이고, Jack은 2013-10-14 15:38:00에 들어왔습니다. 따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.※ 컬럼 이름(위 예제에서는 ..
[programmers] SQL Lv. 2 - 동물 수 구하기
·
Algorithm Solving/SQL
문제ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.동물 보호소에 동물이 몇 마리 들어왔는지 조회하는 SQL 문을 작성해주세요. 예시예를 들어 ANIMAL_INS 테이블이 다음과 같다면동물 보호소에 들어온 동물은 4마리입니다. 따라서 SQL문을 실행하면 다음과 같이 나와야 합니다.※ 컬럼 이름(위 예제에서는 count)은 일치하지 않아도 됩니다.풀이문제: 동물 보호소에 동물이 몇 ..
[programmers] Java Lv. 2 - 이진 변환 반복하기
·
Algorithm Solving/Java
문제0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다.x의 모든 0을 제거합니다.x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다.예를 들어, x = "0111010"이라면, x에 이진 변환을 가하면 x = "0111010" -> "1111" -> "100" 이 됩니다.0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 "1"이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에 담아 return 하도록 solution 함수를 완성해주세요.제한사항s의 길이는 1 이상 150,000 이하입니다.s에는 '1'이 최소 하나 이상 포함되어 있습니다.입출력 예 입출력 예 설명입출력..