본문 바로가기

전체 글221

[백준] 1271 엄청난 부자2 - 자바, BigInteger 문제 링크 https://www.acmicpc.net/problem/1271 풀이 코드 BigInteger 타입 사용 public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); BigInteger n = new BigInteger(st.nextToken()); BigInteger m = new BigInteger(st.nextToken()); System.out.println(n.divide.. 2021. 9. 15.
zsh 터미널에서 사용자 이름 및 컴퓨터 이름 제거하기 터미널을 사용하다 보면 @와 함께 사용자 이름, 컴퓨터 이름이 나오는 부분이 공간을 차지하기도 하고 불필요하다고 느껴질 때가 있습니다. vi ~/.zshrc로 zsh 설정 파일을 열어 제일 아랫줄에 아래 내용을 추가해줍니다. prompt_context() { if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then prompt_segment black default "%(!.%{%F{yellow}%}.)$USER" fi } 추가한 내용을 저장한 후 터미널을 재시작하거나 source ~/.zshrc 을 입력하면 @ 이후 불필요한 부분이 깔끔하게 제거된 것을 볼 수 있습니다. 2021. 8. 17.
[자료구조&알고리즘] 버블 정렬(Bubble Sort) - 자바 버블 정렬 시간 복잡도 : O(n2) 버블 정렬은 아래 그림에서 볼 수 있듯이 인접한 두 원소의 비교를 통해 정렬을 해나가는 알고리즘입니다. 요소의 개수가 n개인 배열에서 n-1회 비교, 교환을 하고 나면 가장 큰 요소가 맨 뒤로 이동합니다. 이러한 일련의 비교, 교환 과정을 패스라고 합니다. 두번째 패스의 비교 횟수는 첫번째 패스보다 1적은 n-2회, 세번째 패스에서는 n-3회로 패스마다 1회씩 비교 횟수가 줄어듭니다. 그 이유는 각 패스마다 요소 하나씩 정렬이 완료되기 때문입니다. 모든 정렬이 완료되려면 n-1회의 패스가 수행되어야 합니다. 소스 코드 public class Main { private static void swap(int[] arr, int n1, int n2) { int temp =.. 2021. 8. 16.
[자료구조&알고리즘] 8퀸 문제 - 자바 8퀸 문제란? 8퀸 문제란 8개의 퀸이 서로 공격하여 잡을 수 없도록 체스판에 배치하는 문제입니다. 체스판의 크기는 8*8 퀸은 체스판의 대각선을 포함한 모든 방향으로 어떤 위치든 직선 이동이 가능 퀸을 배치하는 방법 8개의 퀸을 체스판에 배치하는 경우의 수는 체스판이 8*8 = 64 칸으로 되어있기 때문에 다음과 같습니다. 64*63*62*61*60 ... * 57 = 178,462,987,637,760 보기만 해도 말도 안 되는 저 경우의 수들을 어떤 조합이 조건을 만족하는지 하나하나 살펴보는 것은 상당히 비효율적입니다. 이를 해결하기 위해 규칙 두가지를 세워보도록 하겠습니다. [규칙 1] 각 열에 퀸을 1개만 배치한다. 규칙 1을 적용하면 경우의 수는 8*8*8*8*8*8*8*8=16,777,216.. 2021. 8. 4.
[백준] 9019 DSLR - 자바, BFS(너비 우선 탐색) 문제 링크 https://www.acmicpc.net/problem/9019 풀이 BFS(너비 우선 탐색)을 사용하여 풀이. 레지스터 값과 명령어들을 저장해두는 용도로 Result 클래스를 사용한다. 이미 계산한 값을 다시 계산하는 것을 막기 위해 visited 배열을 사용한다. import java.io.*; import java.util.*; public class Main { static boolean[] visited; public static String bfs(int from, int to) { Queue q = new LinkedList(); q.offer(new Result(from, "")); visited[from] = true; while (!q.isEmpty()) { Result r.. 2021. 7. 25.