본문 바로가기

Algorithm94

[알고리즘 문제풀이] 백준 2064 IP주소 (JAVA) https://www.acmicpc.net/problem/2064 2064번: IP 주소 네트워크에 연결되어 있는 컴퓨터들은 각각 하나의 IP 주소를 갖게 된다. 그리고 이러한 IP 주소를 갖는 컴퓨터들이 여러 개 모여서 하나의 IP 네트워크를 구성하게 된다. IP 네트워크는 ‘네트워 www.acmicpc.net 문제푸는데 도움이 된 글 https://limkydev.tistory.com/166 [Network] 서브넷마스크(Subnet Mask)란? *선행지식 2018/11/10 - [전공지식/Network] - [Network] IP주소란? 2018/11/11 - [전공지식/Network] - [Network] IP주소 클래스(A,B,C class)란? 1) 서브네팅이란? (Subnetting) 서브.. 2022. 1. 13.
[알고리즘 문제풀이] 백준 1094 막대기(JAVA) https://www.acmicpc.net/problem/1094 1094번: 막대기 지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대 www.acmicpc.net /** * 입력데이터 2^6 * * * 비트마스크를 이용한 풀이 * * 64로 나눠서 나올 수 있는 막대는 * 64 32 16 8 4 2 1 * * 결국 비트단위임 * * 숫자를 비트로 봤을때 저런 막대들의 조합이 됨 * * bitCount로 쓰인 숫자(막대)개수 체크 * 출력 */ import java.util.*; import java.io.*; public class BJ1094_막대기 .. 2022. 1. 13.
[알고리즘 문제풀이] 백준 13701 중복제거(JAVA) https://www.acmicpc.net/problem/13701 13701번: 중복 제거 문제: N개의 정수 A1, A2, ..., AN 을 읽고, 이들 중에서 반복되는 수를 제외하고 남은 N'개의 수 B1, B2, ..., BN’ 을 입력된 순서대로 출력하시오. 이때, 0 ≤ Ai < 225 = 33554432, i=1,2,…,N. 입력의 개수 N은 1 www.acmicpc.net /** * 입력값 500만 * 입력데이터 2^25 * * 실패함 ㅠ * * 비트마스크 풀이 * * 1. 비트셋 활용 풀이 * * 입력값을 받으면서, * 현재 데이터가 비트셋에 없었으면 비트셋 표기 및 출력 * 있었으면 패스 * * 2. 배열 + 비트 마스크 * * 배열을 비트셋같이 쓸거임 arr * * int 자료형은 2.. 2022. 1. 13.
[알고리즘 문제풀이] 백준 1780 종이의 개수 (JAVA) https://www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한 크기로 자르려고 한다. 만약 종이가 모두 같은 수 www.acmicpc.net /** * 분할정복 문제 * * 1) 숫자 파악 * * 2) 맞지 않으면, 9분할 * * 3) 분할 내에서 확인 */ import java.util.*; import java.io.*; public class BJ1780_종이의개수 { public static int[][] arr; public static int[] answer = new int[3]; public static voi.. 2022. 1. 12.
[알고리즘 개념] KMP - 문자열 검색 알고리즘(JAVA 코드) KMP란 문자열 검색 알고리즘. Knuth-Morris-Pratt 3명의 사람이 설계한 알고리즘으로, 전체 문자열에서 특정 문자열을 찾는 알고리즘. 시간복잡도: N+M N(전체 문자열 길이), M(패턴 문자열 길이) 브루트포스로 풀이 코드 가장 쉽게 생각할 수 있는 브루트포스로 전체 문자열에서 특정 문자열을 찾았다면, 시간복잡도는 전체 문자열의 길이(n) * 특정 문자열의 길이(m) public Main{ String all = "ABABABCD"; // 전체 문자열 String pattern = "ABABC"; // 패턴 int cnt = 0; //패턴이 맞은 개수 for(int i = 0; i < all.length(); i++){ boolean check = true; // 패턴이 맞는지 체크 변수.. 2022. 1. 12.
정렬 알고리즘(sort) 버블 정렬 알고리즘(Bubble Sort) 서로 인접한 두 원소를 검사하여 순서에 맞지 않는 경우 위치를 바꾼다. 시간복잡도 : O(n^2) | 5 | 4 | 6 | 1 | 3 | 2 | 위의 숫자로 이루어져 있을때 1회전 시 5 4 비교하여 작은숫자를 왼쪽 큰 숫자를 오른쪽으로 | 4 | 5 | 6 | 1 | 3 | 2 | 5 6 비교 시 아무일도 일어나지 않음. 6 1 비교 시 | 4 | 5 | 1 | 6 | 3 | 2 | 6 3 비교 시 | 4 | 5 | 1 | 3 | 6 | 2 | 6 2 비교 시 | 4 | 5 | 1 | 3 | 2 | [6] | 4 5 1 3 2 [6] 마지막 6은 이제 고정 큰수를 계속 뒤로 미뤄내기때문에 가장 마지막값은 최대값이 되고 2회전때는 마지막값은 비교할 필요 없으니 .. 2022. 1. 5.