728x90

2024/04 13

[백준 자바] 8393번(합) - 1부터 n까지의 합

난이도 - 백준 5문제n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.입력첫째 줄에 n (1 ≤ n ≤ 10,000)이 주어진다.출력1부터 n까지 합을 출력한다.   import java.io.*;public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int n=Integer.parseInt(br..

백준/Java 2024.04.26

[백준 자바] 2420번(사파리월드) - 절대값 계산하기

난이도 - 브론즈 5문제사파리월드는 인터넷으로만 존재하는 미스테리한 나라이다. 사파리월드에는 2개의 서브도메인이 seunghwan.royal.gov.sw와 kyuhyun.royal.gov.sw 이 있는데, 이것이 couple.royal.gov.sw으로 합쳐질 것이다. 그러나 도메인 관리 센터 SWNIC(센터장: 김동규)에는 엄격한 룰이 있다. 두 서브도메인을 합칠 때, 유명도의 차이가 너무 차이나지 않을 경우에만 두 서브도메인을 결혼시키는 것이다. 서브도메인의 유명도는 정수이다. 두 서브도메인의 유명도가 주어졌을 때, 그 차이를 구하는 프로그램을 작성하시오.입력첫째 줄에 두 도메인의 유명도 N과 M이 주어진다. (-2,000,000,000 ≤ N, M ≤ 2,000,000,000..

백준/Java 2024.04.24

[백준 자바] 1260번(DFS와 BFS)

난이도 - 실버 2 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. 출력 첫째 줄에 DFS를 수행한 결과를, 그 다음 줄에는 BFS를 수행한 결과를 출력한다. V부터 방문된 점을 순서대..

백준/Java 2024.04.20

[백준 자바] 9372번(상근이의 여행) - BFS(너비 우선 탐색) 사용하기

난이도 - 실버 4 문제 상근이는 겨울방학을 맞아 N개국을 여행하면서 자아를 찾기로 마음먹었다. 하지만 상근이는 새로운 비행기를 무서워하기 때문에, 최대한 적은 종류의 비행기를 타고 국가들을 이동하려고 한다. 이번 방학 동안의 비행 스케줄이 주어졌을 때, 상근이가 가장 적은 종류의 비행기를 타고 모든 국가들을 여행할 수 있도록 도와주자. 상근이가 한 국가에서 다른 국가로 이동할 때 다른 국가를 거쳐 가도(심지어 이미 방문한 국가라도) 된다. 입력 첫 번째 줄에는 테스트 케이스의 수 T(T ≤ 100)가 주어지고, 각 테스트 케이스마다 다음과 같은 정보가 주어진다. 첫 번째 줄에는 국가의 수 N(2 ≤ N ≤ 1 000)과 비행기의 종류 M(1 ≤ M ≤ 10 000) 가 주어진다. 이후 M개의 줄에 a와..

백준/Java 2024.04.20

[Canvas] 캔버스 사용하기 | 캔버스 사이즈 | fillRect()

캔버스를 사용하기 위해 index.html을 생성하고 body 태그 안에 canvas 태그를 넣는다. 화면은 전체화면으로 바꾸고 캔버스에 색상을 넣었다. index.js를 모듈 타입으로 불러온다. DOCTYPE html> Canvas Particle html, body { margin: 0; width: 100%; height: 100%; overflow: hidden; } canvas { background-color: red; } index.js에 canvas를 불러오고 콘솔로 찍어 잘 불러졌는지 확인한다. const canvas = document.querySelector('canvas') console.log(canvas); 이때 캔버스의 기본 사이즈가 300*150인걸 확인할 수 있다. 캔버스에..

Frontend/Canvas 2024.04.14

[알고리즘] 루프 불변성

루프 불변성은 반복문 또는 루프가 실행될 때 특정 조건이 항상 참으로 유지되는 것을 의미하는 것으로, 알고리즘이 타당한 이유를 쉽게 이해할 수 있도록 하기 위해 사용된다. 루프 불변성을 보이려면 다음 세 가지 특성을 만족해야 한다. 초기조건: 루프가 첫 번째 반복을 시작하기 전에 루프 불변성이 참이어야 한다. 유지조건: 루프의 반복이 시작되기 전에 루프 불변성이 참이었다면 다음 반복이 시작되기 전까지도 계속 참이어야 한다. 종료조건: 루프가 종료될 때 그 불변식이 알고리즘의 타당성을 보이는 데 도움이 될 유용한 특성을 가져야 한다. 초기조건과 유지조건을 만족하면 루프가 반복을 시작할 때 루프 불변성은 항상 참이다. 종료조건은 알고리즘의 타당성을 보이는 것과 같기 때문에 가장 중요한다.

알고리즘 2024.04.12

[알고리즘] 삽입 정렬(Insertion Sort)

Input: n개 수들의 수열 (a1, a2, ..., an) Output: a’1 0 and A[i] > key A[j + 1] = A[i] i = i - 1 A[i + 1] = key 입력은 정렬하려는 n개의 수열이 들어있는 배열 A[1...n]이다. 인덱스 j는 카드를 쥔 손으로 가져가 정렬할 현재 카드를 나타낸다. 부분 배열 A[1...j - 1]은 현재 손에 쥔 정렬된 카드고 나머지 부분 배열 A[j + 1...n]은 아직 탁자에 쌓여 있는 카드다. 루프 불변성을 확인해보자. (루프불변성 참고) 2024.04.12 - [프로그래밍 공부] - [알고리즘] 루프 불변성 초기조건: 루프의 첫 반복이 시작되기 전, 즉 j = 2일 때 루프 불변성이 성립하는지 살펴본다. 이때 부분배열 A[1...j - ..

알고리즘 2024.04.11
728x90