본문 바로가기

코딩테스트

(33)
[백준 - JAVA] 10430번 : 나머지 문제 (A+B)%C는 ((A%C) + (B%C))%C 와 같을까? (A×B)%C는 ((A%C) × (B%C))%C 와 같을까? 세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000) 출력 첫째 줄에 (A+B)%C, 둘째 줄에 ((A%C) + (B%C))%C, 셋째 줄에 (A×B)%C, 넷째 줄에 ((A%C) × (B%C))%C를 출력한다. 제출 import java.util.*; public class Q_10430 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nex..
JAVA 코딩테스트 준비하기 - 완전 탐색 - 완전 탐색이라 함은 모든 경우의 수를 시도해 보는 방법을 말합니다 상대적으로 구현이 간단하고, 해가 존재한다면 항상 찾게 됩니다. 경우의 수에 따라 실행 시간이 비례하기 때문에 입력 값의 범위가 작은 경우 유용하며 만약 입력 값의 범위가 크게 되면실행시간이 크기때문에 다른 알고리즘을 사용하거나 최적화를 수행해야합니다. 순차 탐색에 대해서 알아보겠습니다. 순차탐색은 어떤 값을 찾고자 할 때 한 값 씩 다 비교해보는 탐색 알고리즘입니다. 예를 들어 37의 값을 찾고 싶다고 하면 알고리즘에서는 하나씩 다 비교를 해보는 것입니다. 찾고자 하는 값이 없다면 -1이 나오도록 하는 것입니다. 시간복잡도가 O(n)이 됩니다. 다음과 같이 정렬이 되어있는 값이면 이진탐색을 하는 것이 더 효율적 이게 됩니다. 이렇게 이진..
Java 코딩테스트 준비하기 - 비트와 부분집합 - 먼저 비트 연산자에 대해서 알아보겠습니다. And 연산자는 두 비트가 모두 1일 경우에만 1이 되는 경우입니다. OR 연산자는 두 비트 중에서 하나라도 1이면 1이 되는 경우입니다. 둘 다 0일경우에만 0이 됩니다. XOR 연산자를 보시면 두비트가 같으면 0, 다르면 1이 되는 경우입니다. NOT 연산자는 각비트를 반전, 0이면 1, 1이면 0이 되는 경우입니다. Left Shift는 비트를 왼쪽으로 이동 하나 이동할 때마다 곱하기 2와 같게 됩니다. 이진수이기 때문에 한자리를 올린다는 것은 2를 곱하는 것과 같습니다. Right Shift는 비트를 오른쪽으로 이동 하나 이동할 때 마다 나누기 2와 같게 됩니다. 원소가 n개인 집합의 부분집합의 개수는 2^n와 같습니다. 이해를 위해서 코드로 부분집합을 ..
Java 코딩테스트 준비하기 - 재귀(Recursion) - 재귀란 자기자신을 호출하는것을 말합니다. 재귀함수란 자기자신을 호출하는 함수를 말합니다 재귀함수는 크게 Base case아 Recursive case로 구분이됩니다. 간단한 예로 Factorial를 살펴볼 수 있습니다. 첫번째 경우는 Base case로 보고 두번째 경우를 보면 n!을 위해 다시 (n-1)! 을 사용하게 되는 Recursive case로 볼 수 있습니다. 실행되는 것을 개념적으로 살펴보겠습니다. 함수들은 스택 메모리에서 실행이 됩니다. 메인에서 만약에 factorial(3)을 실행했다고 하면 첫번째 base case에 해당하지 않고 두번째 케이스에 해당하기때문에Factorial(2)가 실행이 되고 반복적으로 실행이 되어 factorial(0) 이 실행이되 면 비로소 base 케이스에 해당..
Java 코딩테스트 준비하기 - 배열과 입출력 - 각각의 위치에 integer를 저장할 수 있는 공간이 마련이 되고 초기의 값을 0으로 초기화 합니다. 또한, 배열 생성 중 초기의 값을 중괄호로 묶어서 값을 주어 초기화 할 수 있습니다. 배열 입출력 예제를 살펴보겠습니다. 주어진 입력 값을 이용하여 배열로 받을 수 있습니다 먼저 숫자 값 5를 입력 받기위해 int으로 정의를 해주었습니다. 배열의 크기를 100으로 정의하였지만 실제 문제에서는 맥스 값이 주어질 수 있습니다. 일반적으로 메인 함수가 static으로 주어지기 때문에 변수사용을 위해서 변수 또한 static으로 정의해 주었습니다. Scanner를 이용하여 입력 값을 받아줄 예정입니다. ( in 은 표준입력을 뜻합니다) nextInt() 를 사용하여 값을 받아주며 for문을 이용해 해당하는 배열..
[프로그래머스-SQL] 오랜 기간 보호한 동물(1) 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX_UPON_INTAKE VARCHAR(N)..
[프로그래머스-SQL] 있었는데요 없었습니다 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX_UPON_INTAKE VARCHAR(N)..
[프로그래머스-SQL] 없어진 기록 찾기 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX_UPON_INTAKE VARCHAR(N)..