자바 50

[하루한개념] 비트와 비트마스킹

Bit : 데이터를 나타내는 최소 단위로 이진수의 한자리인 0 or 1을 값으로 갖는다. N비트의 정수형 변수는 N자리의 이진수로 나타낼 수 있다. ex.4 byte인 int의 경우 32bit이기 때문에 2^0~2^31, 즉 2,147,483,648의 수를 표현할 수 있다. N비트가 표현하는 값은 2^0 ~ 2^N-1이다. 2^0 을 최하위 비트(Least Significant Bit), 2^n-1을 최상위 비트(Most Significant Bit)라고 한다. 비트 연산자 비트 논리 연산자 1) & 연산자 (AND, 논리곱) 이진수로 표현된 2개의 피연산자의 각 비트자리값에 모두 1이 있다면 1로 표현 (두 비트 모두 1일 경우에만 연산 결과가 1) ex. 0011 0101 & 0101 0011 -> ..

[알고리즘풀이]백준 1005 : ACM Craft JAVA

목차 개요 본문 1) 문제 2) 과정 3) 코드 전체 개요 이번에 알고리즘 스터디에서 JAVA를 이용해 백준 1005번 ACM Craft를 풀었습니다. 이를 정리해보고자 합니다. 1005번: ACM Craft 첫째 줄에는 테스트케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 건물의 개수 N과 건물간의 건설순서 규칙의 총 개수 K이 주어진다. (건물의 번호는 1번부 www.acmicpc.net 본문 1) 문제 2) 과정 이 문제를 푸는데는 5시간 정도가 소요되었고 에러 없이 통과한 문제였습니다. 제가 문제를 풀며 사용했던 아이디어는 다음과 같습니다. 입력 테스트케이스의 수를 입력받아 그만크 for문 내부를 반복한다. 값을 읽어 지연시간을 delayArr에 담고, 진출차선..

[알고리즘풀이]백준 1516 : 게임 개발 JAVA

목차 개요 본문 1) 문제 2) 과정 3) 코드 전체 개요 이번에 알고리즘 스터디에서 JAVA를 이용해 백준 1516번 게임 개발을 풀었습니다. 이를 정리해보고자 합니다. 1516번: 게임 개발 첫째 줄에 건물의 종류 수 N(1 ≤ N ≤ 500)이 주어진다. 다음 N개의 줄에는 각 건물을 짓는데 걸리는 시간과 그 건물을 짓기 위해 먼저 지어져야 하는 건물들의 번호가 주어진다. 건물의 번호는 1부 www.acmicpc.net 본문 1) 문제 2) 과정 이 문제를 먼저 풀었다가 1015번 문제와 비슷해서 1시간 만에 빠르게 풀었던 문제입니다. [알고리즘풀이]백준 1005 : ACM Craft JAVA 목차 개요 본문 1) 문제 2) 과정 3) 코드 전체 개요 이번에 알고리즘 스터디에서 JAVA를 이용해 백..

[알고리즘풀이]백준 2056 : 작업 JAVA

목차 개요 본문 1) 문제 2) 과정 3) 코드 전체 개요 이번에 알고리즘 스터디에서 JAVA를 이용해 백준 2056번 작업을 풀었습니다. 이를 정리해보고자 합니다. 2056번: 작업 수행해야 할 작업 N개 (3 ≤ N ≤ 10000)가 있다. 각각의 작업마다 걸리는 시간(1 ≤ 시간 ≤ 100)이 정수로 주어진다. 몇몇 작업들 사이에는 선행 관계라는 게 있어서, 어떤 작업을 수행하기 위해 www.acmicpc.net 본문 1) 문제 2) 과정 이번문제는 1시간 정도 걸려서 풀었던 문제입니다. 기본 틀이 머리에 생겨서 크게 어렵지 않게 풀었어요. 기본적인 위상정렬 문제에 Output만 신경써주면 됐어서 편리했습니다. 이번 문제의 아이디어 풀이는 위상정렬 풀이의 기본방식을 설명한다고해도 무방할 것 같네요 ..

[알고리즘풀이]백준 2623 : 음악프로그램 JAVA

목차 개요 본문 1) 문제 2) 과정 3) 코드 전체 개요 이번에 알고리즘 스터디에서 JAVA를 이용해 백준 2623번 음악프로그램을 풀었습니다. 이를 정리해보고자 합니다. 2623번: 음악프로그램 첫째 줄에는 가수의 수 N과 보조 PD의 수 M이 주어진다. 가수는 번호 1, 2,…,N 으로 표시한다. 둘째 줄부터 각 보조 PD가 정한 순서들이 한 줄에 하나씩 나온다. 각 줄의 맨 앞에는 보조 PD가 담당한 www.acmicpc.net 본문 1) 문제 2) 과정 이 문제를 먼저 풀었다가 2252를 풀고 돌아와서 다시 풀어보았던 문제였습니다. [알고리즘풀이]백준 2252 : 줄 세우기 JAVA 목차 개요 본문 1) 문제 2) 과정 3) 코드 전체 개요 이번에 알고리즘 스터디에서 JAVA를 이용해 백준 22..

[알고리즘풀이]백준 2252 : 줄 세우기 JAVA

목차 개요 본문 1) 문제 2) 과정 3) 코드 전체 개요 이번에 알고리즘 스터디에서 JAVA를 이용해 백준 2252번 줄 세우기를 풀었습니다. 이를 정리해보고자 합니다. 2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의 www.acmicpc.net 본문 1) 문제 2) 과정 처음 풀어본 위상정렬 문제여서 어렵다는 소문을 듣고 미리 공부를 좀 한뒤 풀었던 문제입니다. 간단하게 공부를 하면서 배운 내용으로 위상정렬을 정리하면 다음과 같습니다. 위상정렬 : 여러 가지 일들에 순서가 정해져 있을 때 순..

[알고리즘풀이]백준 2637 : 장난감 조립 JAVA

목차 개요 본문 1) 문제 2) 과정 3) 코드 전체 개요 이번에 알고리즘 스터디에서 JAVA를 이용해 백준 2637번 장난감 조립을 풀었습니다. 이를 정리해보고자 합니다. 2637번: 장난감 조립 첫째 줄에는 자연수 N(3 ≤ N ≤ 100)이 주어지는데, 1부터 N-1까지는 기본 부품이나 중간 부품의 번호를 나타내고, N은 완제품의 번호를 나타낸다. 그리고 그 다음 줄에는 자연수 M(3 ≤ M ≤ 100)이 주 www.acmicpc.net 본문 1) 문제 2) 과정 항상 위상정렬을 풀때마다 indegree를 세는 방식이었어서 머리로는 진출차수를 세야함을 알았음에도 indegree를 세는 방식을 고집하다가 6시간이나 걸려 풀었던 문제입니다. 메모리초과도 초반에 만나서 변수도 정리해보고 TreeMap대신..

[알고리즘풀이]백준 9470 : Strahler 순서 JAVA

목차 개요 본문 1) 문제 2) 과정 3) 코드 전체 개요 이번에 알고리즘 스터디에서 JAVA를 이용해 백준 9470번 Strahler 순서를 풀었습니다. 이를 정리해보고자 합니다. 9470번: Strahler 순서 지질학에서 하천계는 유향그래프로 나타낼 수 있다. 강은 간선으로 나타내며, 물이 흐르는 방향이 간선의 방향이 된다. 노드는 호수나 샘처럼 강이 시작하는 곳, 강이 합쳐지거나 나누어지는 곳 www.acmicpc.net 본문 1) 문제 2) 과정 5시간에 걸쳐서 풀었던 위상정렬 문제입니다... 기본 위상정렬 문제에 strahler 순서에 따른 조건이 추가되어 문제를 이해하고 만드는데 어려움을 겪었던 문제였어요... "나머지 노드는 그 노드로 들어오는 강의 순서 중 가장 큰 값을 i라고 했을 때,..

[알고리즘풀이]백준 2559: 수열 JAVA

목차 개요 본문 1) 문제 2) 과정 3) 코드 전체 개요 이번에 알고리즘 스터디에서 JAVA를 이용해 백준 2559번 수열을 풀었습니다. 이를 정리해보고자 합니다. 2559번: 수열 첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기 www.acmicpc.net 본문 1) 문제 2) 과정 이중 for문 방식으로 풀고 싶었는데 자꾸 틀렸다고 떠서 방식을 바꿔 해결한 문제입니다. 푸는데는 3시간 정도 걸렸고 체감 난이도는 꽤 높았습니다.. n일 중에 연속되는 k일의 온도 합이 가장 컸을때의 온도합구하기가 문제의 핵심이라 생각하고 문제를 풀었고, 제..

[알고리즘풀이]백준 2003: 수들의 합2 JAVA

목차 개요 본문 1) 문제 2) 과정 3) 코드 전체 개요 이번에 알고리즘 스터디에서 JAVA를 이용해 백준 2003번 수들의 합2를 풀었습니다. 이를 정리해보고자 합니다. 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net 본문 1) 문제 2) 과정 [알고리즘풀이]백준 1806 : 부분합 JAVA 목차 개요 본문 1) 문제 2) 과정 3) 코드 전체 개요 이번에 알고리즘 스터디에서 JAVA를 이용해 백준 1806번 부분합을 풀었습니다. 이를 정리해보고자 합니다. 1806..

728x90