분류 전체보기 679

[JAVA] 백준 7568번 - 덩치

https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedR..

ALGORITHM 2022.09.14

[JAVA] 백준 2231번 - 분해합

https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 분해합은 해당 (자연수 + 자연수의 각 자리 수 합) 이다. 자연수 m의 분해합이 n인 경우 m을 n의 생성자라 한다. 예를 들어, 198의 분해합은 (198+1+9+8) = 216 이다. 198은 216의 생성자이다. 자연수 n의 가장 작은 생성자를 찾는 문제이다. import java.io.BufferedReader; import java.io.IOException..

ALGORITHM 2022.09.13

[JAVA] 백준 2798번 - 블랙잭

https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main{ public static void main(String[] args) throws IOException {..

ALGORITHM 2022.09.13

[JAVA] 알고리즘 : 그래프 최단거리(BFS)

import java.lang.reflect.Array; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Main{ static int n, m; static ArrayList graph; // Integer를 저장하는 ArrayList를 저장하는 ArrayList static int[] ch, dis; public void BFS(int v){ Queue queue = new LinkedList(); ch[v]=1; // 체크배열 체크 dis[v]=0; // 출발점 0으로 queue.offer(v); while(!queue.isEmpty(..

ALGORITHM 2022.09.09

[JAVA] 알고리즘 : Tree 말단노드까지 가장 짧은 경로(DFS/BFS)

그림과 같은 이진트리에서 루트 노드 1에서 말단노드까지의 길이 중 가장 짧은 길이를 구하는 프로그램을 작성하라. 각 경로의 길이는 루트노드에서 말단노드까지 가는데 이동하는 횟수를, 즉 간선(에지)의 개수의 길이이다. DFS class Node{ int data; Node lt, rt; public Node(int val){ data=val; lt=rt=null; } } public class Main{ Node root; public int DFS(int L, Node root){ if(root.lt==null && root.rt==null) return L; // 말단 노드라면 레벨 리턴 else return Math.min(DFS(L+1, root.lt), DFS(L+1, root.rt)); // 자..

ALGORITHM 2022.09.07

[JAVA] 알고리즘 : 송아지 찾기(BFS)

import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; class Main{ int answer=0; int[] dis={1,-1,5}; int[] ch; // 한번 방문한 것은 큐에 안넣기 위해 체크할 배열 Queue Q = new LinkedList(); public int BFS(int s, int e){ ch=new int[10001]; ch[s]=1; Q.offer(s); int L=0; // 루트 노드는 레벨이 0 while(!Q.isEmpty()){ int len=Q.size(); // 탐색하고자하는 레벨에 있는 원소의 개수 for(int i=0; i

ALGORITHM 2022.09.07

[컴퓨터 구조] 명령어란?

명령어 1. 소스코드와 명령어 고급 언어: 대부분의 프로그래밍 언어. 사람을 위한 언어. 컴퓨터가 이해할 수 없음 저급 언어: 컴퓨터가 직접 이해하고 실행할 수 있는 언어. 명령어로 이루어져 있음 고급 언어로 작성된 소스 코드가 실행되려면 반드시 저급 언어(명령어)로 변환 되어야 한다. 저급 언어는 두가지 종류가 있다. 기계어: 0과 1로 이루어진 명령어로 구성된 저급 언어 어셈블리어: 0과 1로 이루어진 기계어를 읽기 편한 형태로 번역한 저급 언어 고급 언어 -> 저급 언어 변환 개발자들이 고급 언어로 작성한 소스 코드는 결국 저급 언어로 변환되어 실행된다. 그 방식은 크게 두가지 방식으로 나눌 수 있다. 컴파일 방식 컴파일 언어: 컴파일 방식으로 작동하는 고급 언어 컴파일: 컴파일 언어로 작성된 소스..

CS/컴퓨터구조 2022.09.07

[JAVA] 백준 2447번 - 별 찍기 - 10

https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 그림판으로 그려서 패턴을 분석해보았다. 빨간색 박스는 n이 3일 경우, 주황색 박스는 n이 9일 경우(공백으로 채워진 3x3 정사각형을 3의 패턴으로 둘러싼 형태), 노란색 박스는 n이 27일 경우이다(공백으로 채워진 9x9 정사각형을 9의 패턴으로 둘러싼 형태) 이 때 빈칸의 규칙을 찾아보면, n이 3일 경우 가운데 비어있는 부분의 좌표는 (1,1) 부터 시작해 1번째..

ALGORITHM 2022.09.06
반응형