일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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#14501#퇴사#브루트포스
- 백준#BOJ#12865#평범한배낭
- 백준#boj#16932#모양만들기
- 백준#BOJ#8012#한동이는영업사원
- 백준#BOJ#2615#오목
- 백준#BOJ#1939#중량제한
- 백준#boj#12755
- Today
- Total
목록분류 전체보기 (249)
순간을 성실히, 화려함보단 꾸준함을
https://www.acmicpc.net/problem/21608 21608번: 상어 초등학교 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호 www.acmicpc.net 해설 : 문제만 읽어도 누가봐도 삼성 빡구현 문제죠??ㅎㅎㅎ 보면 조건에 맞게 전부 if 문 덕지덕지 발라야되나??하는 생각이 들수 있는데 이런 문제는 깔끔하게 연산자로 비교해주면 됩니다. c++ 이라면 연산자 오버로딩을, java 라면 Comparable 인터페이스 또는 Comparator 인터페이스를 사용해서 적절하게 처리를 해주면 됩니다. 가장 최우선인 자리에 배치를 해야되니 pr..
https://www.acmicpc.net/problem/2343 2343번: 기타 레슨 강토는 자신의 기타 강의 동영상을 블루레이로 만들어 판매하려고 한다. 블루레이에는 총 N개의 강의가 들어가는데, 블루레이를 녹화할 때, 강의의 순서가 바뀌면 안 된다. 순서가 뒤바뀌는 경 www.acmicpc.net 해설 : 이분탐색 문제 특징이 문제를 읽었을때 어떤 범위를 줄여나가며 답을 갱신해야되는 특징을 가지고 있는 것 같습니다. 이번 문제도 보시면 블루레이의 크기를 최소로 하려면 결국 x크기에 대해서 너무 오버한다면 줄여나가고 반대로 너무 빡빡하면 키우고 이런식으로 답에 해당하는 값을 찾기 위해 범위를 줄여나가는 것이죠. 정렬이 된 상태에서 원하는 수를 찾기 위한 방법을 생각해보시면 이 문제도 결국 근본적인 ..
https://www.acmicpc.net/problem/22868 22868번: 산책 (small) 첫 번째 줄에는 정점의 개수 $N$과 두 정점 사이를 잇는 도로의 개수 $M$이 공백으로 구분되어 주어진다. 두 번째 줄부터 $M + 1$ 번째 줄까지 정점 $A, B$가 공백으로 구분되어 주어진다. 정점 $A$와 www.acmicpc.net 해설 : 사전순으로 s->e 까지 도달해야 된다는게 은근히 까다롭더라구요. 전 그래서 에초에 인접리스트들을 전부 sort 해주었습니다. 1 3 1 2 2 3 2 4 3 4 입력이 1 2 가 아닌 1 3 이 먼저 들어가게 된다면 인접리스트에는 1 3 이 더 앞서서 저장이 되겠죠??그러면 사전순으로 도달해야 됨에 있어서 너무 까다로워집니다. 이를 해결하기 위해서 1 2..
https://www.acmicpc.net/problem/22942 22942번: 데이터 체커 데이터가 조건에 맞는다면 YES, 조건에 만족하지 않는다면 NO를 출력한다. www.acmicpc.net 해설 : 이 문제 꽤 재밌었습니다. 먼저 원의 교점이 없어야 합니다. 이때 중요한 포인트는 원의 x 좌표만 다를뿐 y 좌표는 동일하다는 것이죠. 즉, 굳이 원으로 표현해줄 필요없이 일직선으로 표현해 줄 수 있다는 것 입니다. 입력이 5 4 3 1 6 1 이런식으로 들어왔다고 하면 그림과 같이 표현해 줄 수 있겠죠. 그러면 NO 가 될 조건은???한 일직선이 다른 일직선 사이에 '걸쳐있으면' 됩니다. 이렇게 말이죠. 이는 스택을 사용해서 걸러주면 되겠죠? //package com.boj.practice; im..
https://www.acmicpc.net/problem/7573 7573번: 고기잡이 한국인의 식단에서 생선은 매우 중요한 단백질 공급원이다. 반면, 지구 온난화로 인한 바닷물의 온도 상승, 그리고 지금까지 마구잡이로 물고기를 잡은 결과로 점점 우리나라의 바다에서 물고 www.acmicpc.net 해설 : 단순히 생각했을때 2차원배열로 선언해서 접근할수도 있을 것 같지만 N의 범위가 1만이니 아마 메모리 초과가 발생할 것 입니다. 그런데 굳이 2차원 배열을 만들필요가 있을까요???그물의 길이도 100, 물고기의 최대 수도 100이니 그냥 주어진 입력값들만으로도 충분히 범위를 구할 수 있습니다. 즉, 모든 가능한 경우의 수를 직접 해보면 된다는 뜻입니다. 이때, 네방향(왼쪽 위, 오른쪽 위, 왼쪽 아래,..
https://www.acmicpc.net/problem/1301 1301번: 비즈 공예 첫째 줄에 다솜이가 가지고 있는 구슬의 종류 N이 주어진다. N은 3보다 크거나 같고, 5보다 작거나 같다. 둘째 줄부터 N개의 줄에 각각의 구슬이 총 몇 개 있는 지주어진다. 첫째 줄에는 1번 구슬, www.acmicpc.net 해설 : 사실 이런 문제를 보면 dp를 사용해야되는 건 알겠는데 점화식을 세우기가 바로 보이지는 않더라구요....그래서 항상 우리는 조건을 잘 보도록 합시다. N이 비정상적으로 범위가 작고 구슬의 총 개수도 35를 넘지는 않죠? 처음에는 브루트포스로 해도 되겠다 싶었는데 2^35은 감당이 안될 것 같아 패스했습니다. 점화식을 어떻게 세우면 좋을까요? 목걸이가 완성될 수 있는 조건을 확인하려..
https://www.acmicpc.net/problem/22236 22236번: 가희와 비행기 가희는 김포 공항에서 김해 공항까지 비행기를 타고 가려고 합니다. 비행기가 수평 방향으로 1만큼 이동하였을 때, 비행기의 고도는 1만큼 변화합니다. (상승 또는 하강) 비행기가 상승하거나 www.acmicpc.net 해설 : d 의 제한이 4000이 MAX이니 그냥 2차원 배열 넉넉하게 선언해주면 됩니다. 파스칼의 삼각형 문제 처럼 대각선에서 값들을 가져와 저장해 주면 됩니다. 이때, 조심할 점은 오버플로,,,,,,,,,조심합니다. 모듈러 연산을 해준다고 해도 덧셈 연산을 진행할때 int 형의 범위를 벗어나는 경우가 생길 수도 있습니다. #include using namespace std; using ll =..
https://www.acmicpc.net/problem/22234 22234번: 가희와 은행 가희는 창구가 하나인 은행을 운영하고 있습니다. 가희의 은행이 영업을 시작했을 때, 대기 줄에는 손님이 N명 있습니다. [그림 1] 카운터 직원과 N명의 손님 x번 손님에 대한 정보는 x번 손님의 www.acmicpc.net 해설 : 시뮬레이션 문제인데. 이런 문제는 큐를 사용하는 것보단 조건(Order) 와 같은 걸 추가해서 priority_queue로 해결하는 것이 훨씬 빠르고 유리하게 해결할 수 있는 것 같습니다. #include using namespace std; struct info { int p, t, c,order; bool operator cur.order; return c > cur.c; } ..
안녕하세요 오늘은 JPA 주제로 글을 써보도록 하겠습니다. 테이블들간 연관관계를 설정해 줄때 일대다(1:N) 관계일때 @JoinColumn 어노테이션을 사용해서 해당 컬럼의 이름을 설정해줍니다.... 근데!!! 전 지금껏 이 @JoinColumn 의 역할에 대해서 너무 오해하고 있었습니다...ㅠㅠ 소스를 통해 설명하도록 하겠습니다. @Entity @Getter @Setter public class Member { @Id @GeneratedValue @Column(name="member_id") private Long id; @NotEmpty private String name; //Embedded type 은 사용자가 직접 정의한 값 타입이다. 여기서 Embedded type을 사용하지 않으면,집 주소에..
https://www.acmicpc.net/problem/22232 22232번: 가희와 파일 탐색기 첫 번째 줄에 jo_test 폴더에 있는 파일 개수 N과 가희가 설치한 OS에서 인식하는 파일 확장자의 개수 M이 공백으로 구분되어 주어집니다. 2번째 줄부터 N+1번째 줄까지 FILENAME.EXTENSION 형식의 문자열 www.acmicpc.net 해설 : 문제는 그냥 되게 간단한데 ㅋㅋㅋㅋㅋ 한가지 조건이라도 놓쳐버리면 고생할 문제네요. 연산자 오버로딩만 잘 어떻게 처리해주면 쉬운 문제입니다. 전 확장자가 둘다 붙거나, 둘다 붙지 않으면 3번째 조건으로 넘어가야 되는데 둘다 붙은 경우에만 생각해서 좀 해맸습니다. 연산자 오버로딩은 자유자재로 구현할 줄 알아야겠죵? #include using nam..
https://www.acmicpc.net/problem/22233 22233번: 가희와 키워드 1번째 글을 쓰고 난 후에, 메모장에 있는 키워드는 set, floyd, os가 됩니다. 2번째 글을 쓰고 난 후에, 메모장에 있는 키워드는 set, os가 됩니다. map은 1번째 글과 2번째 글에 중복으로 등장하였음을 www.acmicpc.net 해설 : 메모장에 적혀있는 단어가 나왔는지 안나왔는지 확인만 할 수 있으면 됩니다. 중복 처리를 해주기 위해 Set 자료구조를 선언해서 해결해 주면 되겠죠? 전 Set 2개를 선언해 주었는데 가만 생각해보니 그냥 Set 하나 선언해서 remove 해주면 될 것 같습니다. //package com.example.bojtemplate; /*JAVA IO Templat..
https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 해설 : 전형적인 브루트포스 문제입니다. 모든 가능한 경우의 수를 해보면 되죠. 주어진 문자열을 문자 하나씩 중복되지 않게 순차적으로 0번부터 X번이라고 가정하고 permutation을 돌려주면 됩니다. 전 중복처리를 map 자료구조를 이용해서 해주었습니다. /*JAVA IO Template Reference : 류호석*/ import javax.xml.crypto.dsig.XMLSignat..