일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 백준#BOJ#1939#중량제한
- 백준#BOJ#8012#한동이는영업사원
- 백준#BOJ#14501#퇴사#브루트포스
- 백준#BOJ#12865#평범한배낭
- 백준#boj#12755
- 백준#BOJ#2615#오목
- 백준#boj#16932#모양만들기
- Today
- Total
목록분류 전체보기 (249)
순간을 성실히, 화려함보단 꾸준함을
https://www.acmicpc.net/problem/21275 21275번: 폰 호석만 만약 문제의 조건에 맞는 X, A, B가 유일하게 존재한다면, X를 십진법으로 표현한 수와 A와 B를 공백으로 나누어 출력하라. 만약 만족하는 경우가 2가지 이상이라면 "Multiple"을, 없다면 "Impossible"을 www.acmicpc.net 문제 : 각 해당하는 진법으로 바꾸었을 때 동일한 값을 찾아라 해설 : 아우 ㅡㅡ....난 이래서 문제... 주어진 문자열에서 최대값을 10진법으로 전환했을 때 k 라면 최소 k+1 진법부터 시작해야됩니다...(전 k진법으로 생각해서 자꾸 틀 ㅠ) 위에만 생각하고 있으면 전부 하나씩 전환해보면 됩니다. #include using namespace std; using..
https://www.acmicpc.net/problem/21738 21738번: 얼음깨기 펭귄 첫째 줄에 얼음 블록의 개수 $N$($ 3 \leq N \leq 328\,000$)과 지지대의 역할을 하게 되는 얼음의 개수 $S$($ 2 \leq S \leq N-1$), 펭귄이 위치한 얼음 블록의 번호 $P$($ S \lt P \leq N$)가 주어진다. 지지대의 역 www.acmicpc.net 문제 : 팽귄이 물에 안빠지도록 하기까지 깨트릴수 있는 최대 얼음의 개수를 구하시오 해설 : "이때, 지지대가 연결되어 있다는 것은 지지대로부터 서로 다른 일반 얼음들을 통해 연결 관계가 이어져 있는 것을 이야기한다" 라는 문구를 잘 생각해보면, 지지대는 다른 지지대와 펭귄이 있는 위치를 제외하고는 연결이 되지 않..
애노테이션은 단순히 마크만 해놓은 것 애노테이션을 자세히 공부를 하지 않으면 무슨 기능이 있는 것처럼 생각할 수 있지만 그냥 주석과 다름이 없다. 이 말이 의미하는 바는 런타임 중에 알아내야 할 값은 들어가지 못한다 예시를 하나 들어보자 import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { private static final String hello = "hello"; @GetMapping(hello) public String hello(){ return "h..
목표 자바 에노테이션에 관해 학습하세요. 학습할 것(필수) 애노테이션 정의하는 방법 @retention @target @documented 에노테이션 프로세서 애노테이션 정의하는 방법 애노테이션이란? - 자바를 개발한 사람들은 소스코드에 대한 문서를 따로 만들기보단 소스크도와 문서를 하나의 파일로 관리하는 것이 더 효율적이라고 생각했다. 그래서 소스코드의 추석에 소스코드에 관한 정보를 저장하고, 소스코드의 주석으로부터 HTML 문서를 생성해내는 프로그램(javadoc.exe)를 만들어서 사용했다. import java.lang.annotation.*; /** * Indicates that a method declaration is intended to override a * method declarati..
https://www.acmicpc.net/problem/17140 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net 문제 : 문제 그냥 읽고 오세요 해설 : 삼성문제 치고는 '그나마' 쉽게 나온 문제였네요. 각 행과 열에서 각 수가 얼만큼 나왔는지 개수를 세고 개수를 기준으로 정렬을 해야하니 개수를 세기 위해 필요한 map을 선언해주고 정렬을 하기 위한 vector를 선언해줍니다. 그리고 하나씩 vector에서 값들을 빼주어 채워주면서 매번 갱신해 주면 됩니다. #include using names..
https://www.acmicpc.net/problem/6416 6416번: 트리인가? 트리는 굉장히 잘 알려진 자료 구조이다. 트리를 만족하는 자료 구조는 비어 있거나(노드의 개수가 0개), 노드의 개수가 1개 이상이고 방향 간선이 존재하며 다음과 같은 조건을 만족해야 한다. www.acmicpc.net 문제 : 트리인지 아닌지 구분해서 답을 출력해라 해설 : 트리의 조건이 나와있습니다. 이에 해당하는지를 알아야 하는데 문제가 있습니다. 바로 정수의 값이 들어온다고 했는데 몇개나 들어올지 모른다는 거죠. 이럴땐 배열을 쓰는게 아니라 map을 통해서 해결하면 됩니다. 문제에서 노드가 하나도 존재하지 않은 경우도 트리라고 했으니 이를 조심하고, 또한 루트노드는 1개만 존재하고 루트노드가 아닌 노드들은 반..
Enum은 왜 만들어지게 되었을까? 출처: https://wisdom-and-record.tistory.com/52 https://yadon079.github.io/2021/java%20study%20halle/week-11-feedback 결론부터 언급하자면 상수를 클래스를 선언하여 사용할때 발생하는 이득들을 모두 취하고, 좀 더 간단한 방법으로 선언하고 사용하기 위해 탄생하게 되었다. 예제는 입력을 받으면 과일의 가격이 출려되는 프로그램이다. public class EnumEx { public static final int APPLE = 1; public static final int BANANA = 2; public static final int COCONUT = 3; public static vo..
목표 자바의 열거형에 대해 학습하세요. 학습할 것 (필수) enum 정의하는 방법 enum이 제공하는 메소드 java.lang.Enum EnumSet 1. enum 정의하는 방법 열거형이란? - 서로 관련된 상수를 편리하게 선언하기 위한 것으로 여러 상수를 정의할 때 사용하면 유용하다. Java5에서 추가된 개념으로 열거형이 갖는 값뿐만 아니라 타입도 관리하기 때문에 보다 논리적인 오류를 줄일 수 있다. 정의 enum 열거형이름{ 상수명1, 상수명2, ...} 예를 들어 동,서,남,북 을 정의하는 열거형 Direction은 다음과 같다 enum Direction{ EAST,WEST,SOUTH,NORTH} 정의된 상수를 사용하는 방법은 열거형이름.상수명 이다. class Unit{ int x,y; // 유..
https://www.acmicpc.net/problem/18126 18126번: 너구리 구구 텔레토비 동산에 사는 너구리 구구는 입구, 거실, 주방, 안방, 공부방, 운동실, 음악실, 음식 창고 등 N개의 방을 가지고 있다. 입구를 포함한 모든 방은 1부터 N까지의 번호가 있고, 입구는 1번이 www.acmicpc.net 문제 : 구구가 입구에서 가장 멀리 떨어져있는 곳에다가 아이스크림을 숨키려고 한다. 이때 그 길이를 구하자 해설 : 그냥 dfs 한번 돌려서 각 동작마다 최대값을 return 시켜주게끔 하면 됩니다. 주의할 점은 '오버플로' 잘 보세요. #include using namespace std; using ll = long long; vector v[5010]; ll dfs(int x, i..
https://www.acmicpc.net/problem/2263 2263번: 트리의 순회 첫째 줄에 n(1≤n≤100,000)이 주어진다. 다음 줄에는 인오더를 나타내는 n개의 자연수가 주어지고, 그 다음 줄에는 같은 식으로 포스트오더가 주어진다. www.acmicpc.net 문제 : inorder와 postorder가 주어질때 preorder를 출력해라 해설 : 크게 왼쪽 트리와 오른쪽 트리로 나누어야 되는데 매번 나눌때마다 postorder에 가장 오른쪽 값이 서브트리의 부모노드가 됩니다. 이 말은 즉슨 매번 postorder의 가장 오른쪽 값을 출력하면 그게 바로 preorder 순서대로 출력한 값이 됩니다. inorder를 탐색할 l과r을 선언해주고, postorder를 탐색할 l과 r을 따로 ..
https://www.acmicpc.net/problem/5052 5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net 문제 : 일관성이 있으면 YES 아니면 NO를 구해라 해설 : 문자열 문제인데 이런 문제를 트라이라는 알고리즘을 사용해서 풀 수 있다는데 나는 모르겠다....(아직 공부 안함 ㅠ) 그냥 문자 하나씩 비교하며 일관성에 문제 없으면 set에 넣어두고 매번 검색해 주었다. #include using namespace std; using ll = long long; string a..
병렬처리(parallel processing) 공부를 하다보면 반드시 듣게 되는 개념이 있다고 한다. 바로 Critical Path 라는 개념이다. Critical Path 란? 필자는 전체 시간을 줄이기 위해 가장 우선적으로 개선해야될 부분 이라고 부르고 싶다. 하나의 작업은 그 전 작업이 끝나야지만 실행할 수 있고, 각 작업은 parallel 하게 처리가 되고 있다고 가정해 보자. 이때 전체 작업 시간을 줄이기 위해서는 어떻게 해야 될까??? 바로 각 작업마다 가장 긴 시간이 걸리는 녀석들의 시간을 줄이면 된다. 여기서 가장 긴 시간이 걸리는 녀석들 이 바로 Critical Path 가 된다. 따라서 각 Critical Path 를 줄여야 전체시간이 줄어드게 된다. 시간을 줄이는 과정을 통해서 Cri..