본문 바로가기
[Java] 1991. 트리순회 www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1≤N≤26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 영문자 www.acmicpc.net 문제 이진 트리를 입력받아 전위 순회(preorder traversal), 중위 순회(inorder traversal), 후위 순회(postorder traversal)한 결과를 출력하는 프로그램을 작성하시오. 예를 들어 위와 같은 이진 트리가 입력되면, 전위 순회한 결과 : ABDCEFG // (루트) (왼쪽 자식) (오른쪽 자식) 중위 순회한 결과 : DBAECFG // (왼쪽 자식) (루트) (오른쪽.. 2021. 2. 8.
[Java] 10829. 이진수 변환 www.acmicpc.net/problem/10829 10829번: 이진수 변환 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 100,000,000,000,000) www.acmicpc.net 문제 자연수 N이 주어진다. N을 이진수로 바꿔서 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 100,000,000,000,000) 출력 N을 이진수로 바꿔서 출력한다. 이진수는 0으로 시작하면 안 된다. import java.io.IOException; import java.util.Scanner; public class BOJ_10829 { private static void printbinary(long n) { if (n 2021. 2. 7.
[Python, Java] 15649. N과 M(1) www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으.. 2021. 2. 6.
[Java] 1873. 상호의 배틀필드 swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5LyE7KD2ADFAXc SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문자동작을 하나하나 확인하면서 케이스 바이 케이스로 구현하였다. 난이도는 높지 않았지만, 구현하는 데 생각보다 많은 시간이 소모되었다. import java.util.Scanner; class SWEX_1873 { public static void main(String args[]) throws Exception { Scanner sc = new Scanner(System.in); int T; T = sc.nex.. 2021. 2. 4.
[Java] 16236. 아기 상어 www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 문제 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가지고 있고, 이 크기는 자연수이다. 가장 처음에 아기 상어의 크기는 2이고, 아기 상어는 1초에 상하좌우로 인접한 한 칸씩 이동한다. 아기 상어는 자신의 크기보다 큰 물고기가 있는 칸은 지나갈 수 없고, .. 2021. 2. 3.
[Python] 2004. 조합 0의 개수 www.acmicpc.net/problem/2004 2004번: 조합 0의 개수 첫째 줄에 정수 $n$, $m$ ($0 \le m \le n \le 2,000,000,000$, $n \ne 0$)이 들어온다. www.acmicpc.net 문제 (nCm)의 끝자리 0의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 n, m (0≤m≤n≤2,000,000,000, n≠0)이 들어온다. 출력 첫째 줄에 (nCm)의 끝자리 0의 개수를 출력한다. 예제 입력 25 12 예제 출력 2 def count(N, num): cnt = 0 div = num while (N>= div): cnt += (N // div) div *= num return cnt a,b= map(int,input().split().. 2021. 2. 2.
[Python] 튜플 programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr 문제 설명 셀수있는 수량의 순서있는 열거 또는 어떤 순서를 따르는 요소들의 모음을 튜플(tuple)이라고 합니다. n개의 요소를 가진 튜플을 n-튜플(n-tuple)이라고 하며, 다음과 같이 표현할 수 있습니다. (a1, a2, a3, ..., an) 튜플은 다음과 같은 성질을 가지고 있습니다. 중복된 원소가 있을 수 있습니.. 2021. 2. 1.
[Python] 삼각달팽이 programmers.co.kr/learn/courses/30/lessons/68645 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr 문제 설명 정수 n이 매개변수로 주어집니다. 다음 그림과 같이 밑변의 길이와 높이가 n인 삼각형에서 맨 위 꼭짓점부터 반시계 방향으로 달팽이 채우기를 진행한 후, 첫 행부터 마지막 행까지 모두 순서대로 합친 새로운 배열을 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 1,000 이하입니다. 입출력 예 n result 4 [1,2,9,3,10,8,4,.. 2021. 1. 31.
[Java] 13458. 시험 감독 www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net N개의 시험장과 각 시험장의 A만큼의 응시자가 있다. 감독관은 총감독관과 부감독관으로 나뉘는데, 각 감독관마다의 감시할 수 있는 응시자의 수인 B, C가 주어진다. 각 응시장에는 총감독관 1명이 필수로 있어야 하고, 부감독관은 여러명 있어도 된다. 주어진 입력값을 이용하여 감독관의 최솟값을 구하는 것이 문제이다. 문제에 접근하는 방법은 다음과 같았다. 1.. 2021. 1. 29.
[Java] 2217. 로프 www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net N개의 로프를 이용하여 들 수 있는 물체의 최고 중량을 구하는 문제이다. N개의 로프를 이용하여 W의 중량을 들고자 할 때, 각 로프에는 W/N의 중량이 실리게 된다. (이 문구를 보고 배열로 입력을 받고, (최솟값 * 배열의 개수)가 그 시점의 최대 무게라고 생각했다.) 전반적인 알고리즘 흐름은 다음과 같다. 1. 배열로 입력을 받아온다. 2. 현재 배열에서의 최솟값과 그 때의 배열의 길이를 곱해준다.. 2021. 1. 28.
[Java] 1475. 방번호 www.acmicpc.net/problem/1475 1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다. www.acmicpc.net 0~9까지의 숫자로 이루어진 숫자 세트를 이용하여 방번호를 표현하고자 한다. 주어진 입력은 최소 몇 개의 세트를 이용해야 하는지 출력하면 된다. 단, 문제의 핵심 포인트는 6과 9를 서로 뒤집어서 사용할 수 있다고 한다. //1 배열을 0~9까지가 아닌 0~8까지만 생성하였다. 이유는 6과 9를 함께 count하면서 나중의 계산을 편하게 하기 위함이다. //2 idx 변수로 최댓값의 인덱스를, max변수로 배열의 최댓값을 저장한다. //3 최댓값의 인덱스가 6일 경우에, 한 세트에 6과 9가 각각 1.. 2021. 1. 27.