일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Python
- GROUP BY 절
- 헤드퍼스트 디자인패턴
- 백준
- pypy3
- SQLD / SQLP
- JAVA 11
- baekjoon
- programmers
- SELECT 절
- 공공데이터
- BOJ
- 파이썬
- Python 3
- java
- Codeforces Round #802 (Div. 2)
- 자바
- 기본
- 명품 자바 프로그래밍
- 기초
- 이론
- 개념
- level1
- Java11
- 코딩테스트
- 단계별로 풀어보기
- 응용
- Codeup
- 기초100제
- HAVING 절
- Today
- Total
목록CodingTest (92)
Development Project
문제 링크 : https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 소요 시간 : 10분 문제를 읽고 이해하기 제한 시간 : 2초 메모리 : 128MB 문제 서로다른 N개의 자연수의 합이 S(1≤S≤4,294,967,295) S를 알때 N의 최댓값을 구하는 문제 이해 서로 다른 N개의 자연수로 최댓값을 구하는 것이므로, 가장 작은 자연수부터 더했을때 S보다 커지는 값을 찾고 그때 -1을 하면 답이된다! 그 외의 처리나, 다른 절차는 필요없는 문제.. 계획 수행 (실제코드 작성) - 평소였다면 5단계에 위치했을테지만 너무 간단해서 바로 코드로 썼다. Java 11 im..
문제 링크 : https://www.acmicpc.net/problem/23288 23288번: 주사위 굴리기 2 크기가 N×M인 지도가 존재한다. 지도의 오른쪽은 동쪽, 위쪽은 북쪽이다. 지도의 좌표는 (r, c)로 나타내며, r는 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로부터 떨어진 칸의 개수이다. 가장 왼 www.acmicpc.net 소요 시간 : 최적화 시간까지 합치면 4시간.. 어후 문제를 읽고 이해하기 제한 시간 : 2초 메모리 : 1024MB 문제 NxM의 지도(2≤N,M≤20), 이동횟수 K(1≤K≤1,000) 주사위를 (1,1)부터 K번만큼 [문제에서 주어진 조건에 따라 방향을 정하고, 해당방향으로 한칸 이동하여(해당 방향으로 주사위가 넘어지게 함) 주사위를 이동한 뒤, 해당 지점으로..
문제 링크 : https://www.acmicpc.net/problem/21608 21608번: 상어 초등학교 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호 www.acmicpc.net 소요 시간 : 1시간 문제를 읽고 이해하기 제한 시간 : 1초 메모리 : 1024MB 문제 NxN의 격자(3≤N≤20), 학생의 번호 ni(1≤ni≤N*N) 각 학생마다 좋아하는(인접하길 바라는) 학생이 4명씩 있다. 자리를 배치할때, 1. 좋아하는 학생이 많이 인접하도록 2. 좋아하는 학생이 같은수로 인접한 곳이 여러개라면, 인접한 칸중 빈곳이 많도록 3. 빈곳도 마찬가..
문제 링크 : https://www.acmicpc.net/problem/1038 1038번: 감소하는 수 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 www.acmicpc.net 소요 시간 : 1시간 문제를 읽고 이해하기 제한 시간 : 1초 메모리 : 512MB 문제 입력값 N(0≤N≤1,000,000) 이해 모든 자릿수가 기준으로 앞의 수보다 뒤의 수가 다 작다면 감소하는 수라고 정의한다. 이때 N번째 감소하는 수를 구하라는 문제이다. 문제 이해는 어렵지 않아보이지만, 감소하는 수가 제한이 생길수 밖에 없다는 것 정도는 분석해야할듯싶다. 한자..
문제 링크 : https://www.acmicpc.net/problem/2310 2310번: 어드벤처 게임 입력은 여러 개의 미로로 주어진다. 각 미로의 첫 줄에는 미로의 방 수를 나타내는 정수 n(1 ≤ n ≤ 1000)이 주어진다. 다음 n 줄에는 각 방의 정보가 주어진다. 각 방의 정보는 방의 내용물을 나타 www.acmicpc.net 소요 시간 : 40분 문제를 읽고 이해하기 제한 시간 : 1초 메모리 : 128MB 문제 방의 개수 N개(1≤N≤1,000), 방별 비용(0≤N≤500), 방의 유형은 빈방, 레프리콘방, 트롤방임 1번방에서 N번방으로 갈 수 있는지 여부를 출력하는 문제이고, 방의 경우에 따라 갈수있는지 불가능한지 정해진다 빈방은 변화가 없고, 레프리콘방은 일정금액 이하일경우 돈을 일..
문제 링크 : https://www.acmicpc.net/problem/1967 1967번: 트리의 지름 파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n-1개의 줄에 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 연 www.acmicpc.net 소요 시간 : 4시간.....ㅎㅎㅎㅎㅎㅎ 문제를 읽고 이해하기 제한 시간 : 2초 메모리 : 128MB 문제 노드의 개수 N개(1≤N≤10,000), 간선의 개수 N-1개 트리의 끝부분(리프노드)를 잡고 쫙 폈을때 가장 긴 길이를 구하는 문제 이해 문제 이해는 어렵지 않았는데, 문제에서 예시로 준 그림이 왜 45가 되는지 분석하지않고 문제에 바로 접근해서 많이 삽..
문제 링크 : https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 소요 시간 : 1시간 30분 문제를 읽고 이해하기 제한 시간 : 2초 메모리 : 512MB 문제 NxN 면적의 땅(1≤N≤50), 땅은 1x1개의 칸으로 나뉘어짐 각 땅(1x1)에는 나라가 하나씩 존재하고 A[r][c]명이 살고있음 인구이동이 불가할때까지 밑의 일들이 반복해서 일어남 국경선을 공유하는 두 나라의 인구차이가 L이상 R이하인 모든곳의 국경선을 하루간 연다 ..
문제 링크 : https://www.acmicpc.net/problem/2304 2304번: 창고 다각형 첫 줄에는 기둥의 개수를 나타내는 정수 N이 주어진다. N은 1 이상 1,000 이하이다. 그 다음 N 개의 줄에는 각 줄에 각 기둥의 왼쪽 면의 위치를 나타내는 정수 L과 높이를 나타내는 정수 H가 한 개의 www.acmicpc.net 소요 시간 : 1시간 문제를 읽고 이해하기 제한 시간 : 2초 메모리 : 128MB 문제 N개의 막대기둥(1≤N≤1,000), 기둥의 왼쪽면의 위치(1≤L≤1,000), 기둥 높이(1≤H≤1,000) 지붕이 기둥을 전부 감싸면서, 중간에 오목하게 들어간 부분없이 딱 맞게 설계할때 창고의 면적을 구하는 문제 이해 문제가 자세하게 설명되어 있어 크게 이해가 어렵진 않았다..
문제 링크 : https://www.acmicpc.net/problem/2610 2610번: 회의준비 첫째 중에 회의에 참석하는 사람의 수 N이 주어진다. 참석자들은 1부터 N까지의 자연수로 표현되며 회의에 참석하는 인원은 100 이하이다. 둘째 줄에는 서로 알고 있는 관계의 수 M이 주어진다. 이 www.acmicpc.net 소요 시간 : 2시간 문제를 읽고 이해하기 제한 시간 : 1초 메모리 : 128MB 문제 회의에 참석하는 사람의 수(1≤N≤100), 서로 알고있는 관계의 수 M (관계이니까 최대 N-1개임) 서로 알고있는 사람은 같은위원회에 속해야하고, 위원회의 수는 최대가 되어야함 위원회마다 대표가 한명씩 있는데 각 위원회 회원들이 대표에게 의견전달이 가장 효율적으로 될수있도록 대표를 선정하는..
문제 링크 : https://www.acmicpc.net/problem/16724 16724번: 피리 부는 사나이 첫 번째 줄에 지도의 행의 수를 나타내는 N(1 ≤ N ≤ 1,000)과 지도의 열의 수를 나타내는 M(1 ≤ M ≤ 1,000)이 주어진다. 두 번째 줄부터 N개의 줄에 지도의 정보를 나타내는 길이가 M인 문자열이 주 www.acmicpc.net 소요 시간 : 3시간 (Union-Find 문제가 오랜만이라 구현에 시간을 많이 쏟았다..ㅜ 어려워어려워) 문제를 읽고 이해하기 제한 시간 : 1초 메모리 : 256MB 문제 지도의 행(1≤N≤1,000), 지도의 열(1≤M≤1,000) 영과일(?) 회원들이 지도의 각 방향에 따라 이동할때 모두가 SAFE ZONE에 들어갈 수 있게하는 SAFE Z..
문제 링크 : https://www.acmicpc.net/problem/1208 1208번: 부분수열의 합 2 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 40, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 소요 시간 : 1시간 40분 문제를 읽고 이해하기 제한 시간 : 1초 메모리 : 256MB 문제 N개의 정수(1≤N≤40), 더해서 얻고싶은 값 S(|S|≤1,000,000), N개의 크기를 가지는 수열 N개의 수열에서 얻을 수 있는 부분수열들 중 합이 S가 되는 경우의 수를 출력하는문제 이해 처음에 문제를 잘못 이해해서, 누적합+포인터로 구하..
문제 링크 : https://www.acmicpc.net/problem/1005 1005번: ACM Craft 첫째 줄에는 테스트케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 건물의 개수 N과 건물간의 건설순서 규칙의 총 개수 K이 주어진다. (건물의 번호는 1번부 www.acmicpc.net 소요 시간 : 1시간 문제를 읽고 이해하기 제한 시간 : 1초 메모리 : 512MB 문제 테스트 케이스 수 T개(T>0), 건물개수 N(2 BFS의 절차는 크게 아래와 같이 6가지로 볼 수 있다 위 각 수행문에 대해 어떤일이 있을 때 분기처리를 해줘야하는지 분석해보겠다. 큐에서 꺼내옴 목적지인가 - 위 문제에서는 필요없다 연결된 곳을 순회 해당 건물번호에 연결된 건물들은 인접리..
문제 링크 : https://www.acmicpc.net/problem/17359 17359번: 전구 길만 걷자 선린 친구들은 ✨인기스타 슈퍼인싸 예원쌤✨을 존경한다. 방학 동안 선생님을 뵐 수 없다니! 그래서 학생들은 방학식 날 💡전구 길만 걷자💡라는 엄청난 이벤트를 준비했다. 💡💡💡💡 www.acmicpc.net 소요 시간 : 2시간 30분 문제를 읽고 이해하기 제한 시간 : 1초 메모리 : 512MB 문제 전구 묶음 개수 N(1≤N≤10) 켜진 전구 : 1, 꺼진 전구 : 0 인 문자열로 입력을 줌 1->0, 0->1 이런 상태변화가 없을수록 좋은 배치 전구를 묶음(묶음은 순서변화 X)을 나열했을 때, 상태변화의 최소 횟수 출력하라는 문제 이해 전구 묶음안에서는 순서를 바꾸지 못하므로, 한 문자열(..
문제 링크 : https://www.acmicpc.net/problem/2018 2018번: 수들의 합 5 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한 www.acmicpc.net 소요 시간 : 1시간 문제를 읽고 이해하기 제한 시간 : 2초 메모리 : 32MB 문제 정수 N을 연속된 숫자의 합으로 나타낼 수 있는 경우의 수를 출력하는 문제 이해 15라는 숫자가 N에 입력되었다면, 15와 7+8, 4+5+6, 1+2+3+4+5 즉, 4가지 방식으로 나타낼 수 있으므로 답은 4가 된다. 문제를 익숙한 용어로 재정의와 추상화 입출력 예제에 있..
문제 링크 : https://www.acmicpc.net/problem/23810 23810번: 골뱅이 찍기 - 뒤집힌 ㅋ 서준이는 아빠로부터 골뱅이가 들어 있는 상자를 생일 선물로 받았다. 상자 안에는 뒤집힌 ㅋ자 모양의 골뱅이가 들어있다. 뒤집힌 ㅋ자 모양은 가로 및 세로로 각각 5개의 셀로 구성되어 있다. www.acmicpc.net 소요 시간 : 7분 정답 코드 import java.io.*; import java.util.*; public class Main{ static int N; static String[] f = {"@@@@@","@","@@@@@","@","@"}; static StringBuilder sb = new StringBuilder(); public static void ma..
문제 링크 :https://www.acmicpc.net/problem/2153 2153번: 소수 단어 소수란 1과 자기 자신으로만 나누어떨어지는 수를 말한다. 예를 들면 1, 2, 3, 5, 17, 101, 10007 등이 소수이다. 이 문제에서는 편의상 1도 소수로 하자. 알파벳 대소문자로 이루어진 영어 단어가 하나 www.acmicpc.net 소요시간 : 30분 정답코드 import java.util.*; import java.io.*; public class Main{ static String input; static int num=0; static boolean[] isNotPrime; // 52*20 = 1040 public static void main(String[] args) throws ..
문제 링크 : https://www.acmicpc.net/problem/15989 15989번: 1, 2, 3 더하기 4 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 4가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 합을 이루고 있는 수의 순서만 다른 것은 같은 것으로 친다. 1+1+1+1 2+1+1 (1+1+2, 1+2+1) 2+2 www.acmicpc.net 소요 시간 : 1시간 38분 문제를 읽고 이해하기 제한 시간 : 1초 메모리 : 512MB 문제 테스트 케이스 수 T개(T>0), 정수 n(0 1개, 가장 큰수가 2인 수는 211, 22 -> 2개, 가장 큰수가 3인 수는 31 -> 1개 ※ 가장 큰수가 2인 경우는, N(4)에서 2를 뺀 2 즉. N이 2일때 케이스에서..
문제 링크 : https://www.acmicpc.net/problem/2738 2738번: 행렬 덧셈 첫째 줄에 행렬의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 차례대로 주어진다. 이어서 N개의 줄에 행렬 B의 원소 M개가 차례대로 주어진다. N과 M은 100보다 작거나 같 www.acmicpc.net 소요 시간 : 8분 정답코드 import java.util.*; import java.io.*; public class Main{ static int N,M; static int[][] map1, map2; static StringBuilder sb = new StringBuilder(); public static void main(String[] args) throw..
문제 링크 : https://www.acmicpc.net/problem/16439 16439번: 치킨치킨치킨 첫 번째 줄에 고리 회원의 수 N (1 ≤ N ≤ 30) 과 치킨 종류의 수 M (3 ≤ M ≤ 30) 이 주어집니다. 두 번째 줄부터 N개의 줄에 각 회원의 치킨 선호도가 주어집니다. i+1번째 줄에는 i번째 회원의 선 www.acmicpc.net 소요 시간 : 2시간 5분 문제를 읽고 이해하기 제한 시간 : 1초 메모리 : 128MB 문제 N명(1≤N≤30)의 회원, 치킨의 종류는 M개(3≤M≤30) 회원마다 특정 치킨의 선호도(ai,1, ai,2, ..., ai,M (1 ≤ ai,j ≤ 9)) 존재 회원의 만족도는 주문한 치킨의 가장 큰 선호도값 목적 : 최대 3가지 종류의 치킨을 시킬때, ..
혹시나 이미 정렬 알고리즘에 대해 공부해본적 있는 사람이라면 이 게시물을 읽기전에 자신이 알고있는 정렬 알고리즘 이름과 코드를 생각해보도록 하자. 몇개가 생각나는가? 최근에 알고리즘 공부를 한 사람이면 모든 알고리즘을 어떤 도움없이 코드를 작성할 수 있고 그에 따른 효율성도 구분할 수 있는 사람도 있을 것이다. 하지만, 전공자 4학년인 필자의 경우도, 오랜만에 다시 공부 겸 되짚어 생각해보니 선택, 삽입, 버블, 퀵 정렬 이렇게 4개를 기억했지만 코드로 바로바로 적을 수 있는 수준은 아니었다. 예상하기로는 아마 다들 3~5가지 정도 말할 수 있을거라 생각한다. 왜일까? 우리는 너무나도 당연하게 알고리즘을 공부하는 이유는 효율성 때문이라는 것을 안다. 더 가독성이 좋고, 더 짧고, 더 빠르게 작동하고, 더..