전체 카테고리
[백준] 1992번 : 쿼드트리 - JAVA[자바]
[백준] 1992번 : 쿼드트리 - JAVA[자바]
2021.03.23www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 문제 이전 문제인 색종이 만들기 문제를 풀어보셨다면 매우 쉽게 풀 수 있는 문제다. 잘 모르겠는 경우 위 링크를 통해 한 번 풀어보고 오는 것을 추천한다. 알고리즘 [접근 방법] 이진 트리(Binary Tree)는 자식 노드를 2개씩 갖는 트리였다면 쿼드 트리(Quad Tree)는 쉽게 말해서 자식 노드가 4개인 트리 자료구조를 의미한다. 이전의 문제인 색종이 문제와 접근 방식 자체는 같은 구조로 ..
[백준] 10950번 : A+B - 3 - [C++]
[백준] 10950번 : A+B - 3 - [C++]
2021.03.22www.acmicpc.net/problem/10950 10950번: A+B - 3 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 알고리즘 [접근 방법] 이전 문제를 풀고 오셨거나 for문에 대해 사용 방법을 알고 있다면 그리 어렵지 않은 문제다. 혹여 for문에 대해 잘 모른다면 아래 글에서 알고리즘 부분을 참고하시길 바란다. 기초적인 사용 방법에 대해 설명하고 있다. st-lab.tistory.com/228 [백준] 2739번 : 구구단 - [C++] www.acmicpc.net/problem/2739 2739번: 구구단 N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다. www.acmic..
[백준] 2739번 : 구구단 - [C++]
[백준] 2739번 : 구구단 - [C++]
2021.03.19www.acmicpc.net/problem/2739 2739번: 구구단 N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다. www.acmicpc.net 문제 for문의 가장 기초적인 문제다! 알고리즘 [접근 방법] 이 문제는 그리 어렵지 않게 풀었을 것이다. for문을 한 번쯤 다뤄보셨으면 아주 쉽게 풀었을 텐데, 일단 for문의 구조를 한 번 이해하고 가보도록 하자. for( 초기식 ; 조건식 ; 증감식 ) { // code // } 위 구조를 기본으로 한다. 초기식은 맨 처음 시작되는 부분으로 초기화를 하는 부분이다. 이 부분이 끝나면 이제 조건식에 의해 true일 경우 코드 영역을 실행하고, false일 경우 반복을 중지하게 된다. 증감식은 변수의 ..
[백준] 2630번 : 색종이 만들기 - JAVA [자바]
[백준] 2630번 : 색종이 만들기 - JAVA [자바]
2021.03.17www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 문제 분할 정복의 첫 문제다. 원리만 이해한다면 그리 어렵진 않으니 차근차근 살펴보도록 하자. 알고리즘 [접근 방법] 여러분이 분할 정복 문제를 풀기 전에 기본적으로 알고있어야 할 지식이 있다. 1. 재귀에 대한 이해 2. 탐색(search)에 대한 이해 위 두 개의 기본 이해를 바탕으로 분할 정복을 풀이할 수 있다. 기본적으로, 분할 정복의 과정은 3단계로 나뉜다. 1. 현재 상태의..
[백준] 2844번 : 알람 시계 - [C++]
[백준] 2844번 : 알람 시계 - [C++]
2021.03.15www.acmicpc.net/problem/2884 2884번: 알람 시계 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, www.acmicpc.net 문제 이 번 문제는 약간 고려해야 할 점이 몇 개 있다. 24시간 표현법으로 표현해야한다는 점과, 00시가 아닌 0으로 표현한다는 점이다. 이 점을 유의하여 풀이해보도록 하자. 알고리즘 [접근 방법] 어려운 문제는 아니다. 현재 받은 수에서 45분 전을 구하면 되는 문제라... 다만, 주의해야 할 점은 0시 보다 아래 시간은 음수가 아니라 23시라는 것은 당연하지만, 이 부분을 고려하지 못하고 그냥 풀었을 수도 있기에 ..
자바 [JAVA] - 힙 정렬 (Heap Sort)
자바 [JAVA] - 힙 정렬 (Heap Sort)
2021.03.14[정렬 알고리즘 모음] 더보기 1. 계수 정렬 (Counting Sort) 2. 선택 정렬 (Selection Sort) 3. 삽입 정렬 (Insertion Sort) 4. 거품 정렬 (Bubble Sort) 5. 셸 정렬 (Shell Sort) 6. 힙 정렬 (Heap Sort) - [현재 페이지] 7. 합병(병합) 정렬 (Merge Sort) 8. 퀵 정렬 (Quick Sort) 9. 이진 삽입 정렬 (Binary Insertion Sort) 10. 팀 정렬 (Tim Sort) Heap Sort [힙 정렬] 힙 정렬은 기본적으로 힙 자료구조를 기반으로 하기 때문에 만약 힙을 모르신다면 이 글을 읽기 전에 반드시 '힙 자료구조'를 보고 오시길 바란다. 바로 위에서 말했듯 힙 정렬은 힙 자료구조를 기반으..
[백준] 1468번 : 사분면 고르기 - [C++]
[백준] 1468번 : 사분면 고르기 - [C++]
2021.03.11www.acmicpc.net/problem/14681 14681번: 사분면 고르기 점 (x, y)의 사분면 번호(1, 2, 3, 4 중 하나)를 출력한다. www.acmicpc.net 문제 알고리즘 [접근 방법] 이번 문제는 워낙 쉬운 문제라 다들 어렵지 않게 풀었을 것이다. 우리가 흔히 사용하는 좌표계를 생각하면 된다. 그리고 하나 포인트라고 하면, X좌표와 Y좌표는 양수 또는 음수로만 주어진다. 이 의미는 0은 입력으로 들어오지 않기 때문에 (X,0), (Y,0), (0,0) 에 대해 따로 예외 처리를 해주지 않아도 된다. 참고로 각 사분면은 다음과 같이 나뉜다. 1사분면 : (양수, 양수) 2사분면 : (음수, 양수) 3사분면 : (음수, 음수) 4사분면 : (양수, 음수) 이를 토대로 조건문을 작..
[백준] 2753번 : 윤년 - [C++]
[백준] 2753번 : 윤년 - [C++]
2021.03.09https://www.acmicpc.net/problem/2753 2753번: 윤년 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때 이다. 예를들어, 2012년은 4의 배수라서 윤년이지만, 1900년은 4의 배수이지만, 100의 배수이기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다. www.acmicpc.net 문제 알고리즘 [접근 방법] 조건을 보면 4의 배수는 윤년으로 1을 출력하지만 100의 배수일 경우 윤년이 아니라 0을 출력해야한다. 다만, 400의 배수일 경우는 윤년으로 본다. 기본 알고리즘은 먼저 4의 배수인지 여부를 본 뒤 4의 배수일 경우 4..
[백준] 5430번 : AC - JAVA [자바]
[백준] 5430번 : AC - JAVA [자바]
2021.03.07www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 문제 덱의 원리만 이해한다면 매우 쉽게 풀 수 있는 문제다. 알고리즘 [접근 방법] 이 문제는 그렇게 어려운 문제는 아니다. 이 번 문제는 덱(Deque) 자료구조를 이용하여 푸는 문제이므로 가능하다면 아래 덱(Deque) 자료구조에 대해 어떻게 구현되고 원리는 무엇인지 이해하고 오시면 좋을 것 같다. 배열 덱 자바 [JAVA] - 배열을 이용한 Deque (덱) 구현하기 •자료구조 관련 목록 링크 펼치기 더보기 0. 자바 컬렉션 프레임워크 (Java Collecti..
자바 [JAVA] - Priority Queue (우선순위 큐) 구현하기
자바 [JAVA] - Priority Queue (우선순위 큐) 구현하기
2021.03.04자료구조 관련 목록 링크 펼치기 더보기 0. 자바 컬렉션 프레임워크 (Java Collections Framework) 1. 리스트 인터페이스 (List Interface) 2. 어레이리스트 (ArrayList) 3. 단일 연결리스트 (Singly LinkedList) 4. 이중 연결리스트 (Doubly LinkedList) 5. 스택 인터페이스 (Stack Interface) 6. 스택 (Stack) 7. 큐 인터페이스 (Queue Interface) 8. 배열 큐 (Array Queue) 9. 연결리스트 큐 (LinkedList Queue) 10. 배열 덱 (Array Deque) 11. 연결리스트 덱 (LinkedList Deque) 12. 배열 힙 (Heap) 13. 우선순위 큐 (Priority..