분류 전체보기505 [BOJ] 11441 합 구하기 - JAVA 1. 문제 11441번: 합 구하기 첫째 줄에 수의 개수 N이 주어진다. (1 ≤ N ≤ 100,000) 둘째 줄에는 A1, A2, ..., AN이 주어진다. (-1,000 ≤ Ai ≤ 1,000) 셋째 줄에는 구간의 개수 M이 주어진다. (1 ≤ M ≤ 100,000) 넷째 줄부터 M개의 줄에는 www.acmicpc.net N개의 수 A1, A2, ..., AN이 입력으로 주어진다. 총 M개의 구간 i, j가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 2. 풀이 N+1칸 배열을 만들고 1부터 N번째 칸까지 이전값+입력값을 저장했다. i이상 j이하 합을 구해야하므로 i를 입력받을 때 -1한다. A[to]-A[from]을 출력한다. public static void ma.. 코딩테스트/BOJ 2022. 4. 13. [BOJ] 1929 소수 구하기 - JAVA 1. 문제 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 2. 풀이 1. 1부터 N까지 소수인지 아닌지 판별하는 primeArr 배열을 만든다. 소수라면 false, 소수가 아니면 true를 저장한다. 2. 2부터 N까지 반복하면서 현재 숫자가 소수가 아니라면 다음으로 넘어간다. 3. 현재 숫자가 소수라면 배수에 접근해서 모두 소수가 아니라고 표시한다.(true표시) 이 때, 코드의 num 코딩테스트/BOJ 2022. 4. 12. [BOJ] 14499 주사위 굴리기 - JAVA 1. 문제 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net 크기가 N×M인 지도가 존재한다. 지도의 오른쪽은 동쪽, 위쪽은 북쪽이다. 이 지도의 위에 주사위가 하나 놓여져 있으며, 주사위의 전개도는 아래와 같다. 지도의 좌표는 (r, c)로 나타내며, r는 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로부터 떨어진 칸의 개수이다. 2 4 1 3 5 6 주사위는 지도 위에 윗 면이 1이고, 동쪽을 바라보는 방향이 3인 상태로 놓여져 있으며, 놓여져 .. 코딩테스트/BOJ 2022. 4. 11. [BOJ] 5639 이진검색트리 - JAVA 1. 문제 5639번: 이진 검색 트리 트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다 www.acmicpc.net 이진 검색 트리는 다음과 같은 세 가지 조건을 만족하는 이진트리이다. 노드의 왼쪽 서브 트리에 있는 모든 노드의 키는 노드의 키보다 작다. 노드의 오른쪽 서브트리에 있는 모든 노드의 키는 노드의 키보다 크다. 왼쪽, 오른쪽 서브 트리도 이진 검색 트리이다. 전위 순회 (루트-왼쪽-오른쪽)은 루트를 방문하고, 왼쪽 서브 트리, 오른쪽 서브 트리를 순서대로 방문하면서 노드의 키를 출력한다. 후위 순회 (왼쪽-오른쪽-루트)는 왼쪽 서브트리, 오.. 코딩테스트/BOJ 2022. 4. 10. [BOJ] 1991 트리순회 - JAVA 1. 문제 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net 이진 트리를 입력받아 전위 순회(preorder traversal), 중위 순회(inorder traversal), 후위 순회(postorder traversal)한 결과를 출력하는 프로그램을 작성하시오. 예를 들어 위와 같은 이진 트리가 입력되면, 전위 순회한 결과 : ABDCEFG // (루트) (왼쪽 자식) (오른쪽 자식) 중위 순회한 결과 : DBAECFG // (왼쪽 자식) (루트) (오른쪽 자식) 후위 순회한 결과 : DBEGFC.. 코딩테스트/BOJ 2022. 4. 9. [BOJ] 14502 연구소 - JAVA 1. 문제 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크기가 N×M인 직사각형으로 나타낼 수 있으며, 직사각형은 1×1 크기의 정사각형으로 나누어져 있다. 연구소는 빈 칸, 벽으로 이루어져 있으며, 벽은 칸 하나를 가득 차지한다. 일부 칸은 바이러스가 존재하며, 이 바이러스는 상하좌우로 인접한 빈 칸으로 모두 퍼져나갈 수 있다. 새로 세울 수.. 코딩테스트/BOJ 2022. 4. 8. 부분집합 부분집합 집합에서 원소를 선택하는 것이다. idx는 뽑으려고 하는 수의 인덱스다. 인덱스가 총 뽑을 수 있는 수의 개수(N)와 동일하면 끝난다. isSelected는 뽑은 수를 저장하는 배열이다. 이 코드에서는 값 없이 뽑은 수의 인덱스만 저장했다. 공집합, 모든 원소를 포함하는 집합도 포함한다. private static void subSet(int idx){ if(idx==N){ for(int i=0;i 공부/ALGORITHM 2022. 4. 8. [JAVA] String.format 과정 신나는 함수 실행 문제를 풀던 중에 코드를 깔끔하게 하려다 메모리는 두 배, 시간은 세 배 걸리는 일이 있어서 원인을 찾아보았다. 두 코드의 다른 점은 한 줄이었다. 밑의 두 코드 출력결과는 동일하다. sb.append("w(").append(a).append(", ").append(b).append(", ").append(c).append(") = ").append(funcW(a,b,c)).append("\n"); sb.append(String.format("w(%d, %d, %d) = %d\n",a,b,c,funcW(a,b,c))); 그래서 도대체 String.format은 어떤 과정을 거치는지 확인해봤다. String.format()의 동작 과정 1. String.java 1) 새 Formatter.. 기록/JAVA 2022. 4. 8. [SWEA] 1953 탈주범 검거 - JAVA 1. 문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 2. 풀이 입력 테스트케이스와 무관하게 항상 필요한 변수들이다. 메인에 저장했다. int[][] deltas 상하좌우 다음 이동 위치 int[][] pipe 파이프 타입 별 움직일 수 있는 deltas 인덱스 int[][] connect 방향 별 이을 수 있는 pipe 인덱스 Queue queue bfs에 사용할 queue BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; StringBuilder sb = new StringBuilder.. 코딩테스트/SWEA 2022. 4. 7. [SWEA] 1249 보급로 - JAVA 1. 문제 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 2. 풀이 입력 테스트케이스와 무관하게 항상 필요한 변수들이다. 메인 안에 만들었다. BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); int T = Integer.parseInt(in.readLine()); PriorityQueue pQueue = new PriorityQueue((o1,o2)->o1[2]-o2[2]); int[][] deltas = {{1,0},{-1,0},{0,1},{0,-1}};.. 코딩테스트/SWEA 2022. 4. 7. [BOJ] 3190 뱀 - JAVA 1. 문제 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 벽이 있다. 게임이 시작할때 뱀은 맨위 맨좌측에 위치하고 뱀의 길이는 1 이다. 뱀은 처음에 오른쪽을 향한다. 뱀은 매 초마다 이동을 하는데 다음과 같은 규칙을 따른다. 먼저.. 코딩테스트/BOJ 2022. 4. 7. [SWEA] 5643 키 순서 - JAVA 1. 문제 BOJ 2458 키 순서와 동일한 문제다. SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 2458번: 키 순서 1번부터 N번까지 번호가 붙여져 있는 학생들에 대하여 두 학생끼리 키를 비교한 결과의 일부가 주어져 있다. 단, N명의 학생들의 키는 모두 다르다고 가정한다. 예를 들어, 6명의 학생들에 대하여 www.acmicpc.net 1번부터 N번까지 번호가 붙여져 있는 학생들에 대하여 두 학생끼리 키를 비교한 결과의 일부가 주어져 있다. 단, N명의 학생들의 키는 모두 다르다고 가정한다. 예를 들어, 6명의 학생들에 대하여 6번만 키를 비교하였고, 그 결과가 다음과 같다고 하자. 1번 학생의 키 <.. 코딩테스트/SWEA 2022. 4. 7. 이전 1 ··· 27 28 29 30 31 32 33 ··· 43 다음