본문 바로가기

Algorithm/백준풀이40

[알고리즘 문제풀이] 백준 2234 성곽 (JAVA코드) https://www.acmicpc.net/problem/2234 2234번: 성곽 첫째 줄에 두 정수 N, M이 주어진다. 다음 M개의 줄에는 N개의 정수로 벽에 대한 정보가 주어진다. 벽에 대한 정보는 한 정수로 주어지는데, 서쪽에 벽이 있을 때는 1을, 북쪽에 벽이 있을 때는 2를, www.acmicpc.net /** * * 비트마스크 문제 * * 성의 크기와 각 벽의 위치가 주어짐 * * 1. 각 벽을 비트단위로 해당위치 저장 * * 2. bfs로 방 개수 파악 및 방 별 넓이 확인 * 1) visited에 현재 위치가 몇번방인지 저장 * 2) 해시맵에 방번호 : 방사이즈로 저장 * * 3. visited(현재위치 방번호)를 4방향 돌면서 다른 방 만났을때, * 현재방 사이즈 + 다른방 사이즈가 .. 2022. 1. 16.
[알고리즘 문제풀이] 백준 1701 Cubeditor (JAVA코드) https://www.acmicpc.net/problem/1701 1701번: Cubeditor Cubelover는 프로그래밍 언어 Whitespace의 코딩을 도와주는 언어인 Cubelang을 만들었다. Cubelang을 이용해 코딩을 하다보니, 점점 이 언어에 맞는 새로운 에디터가 필요하게 되었다. 오랜 시간 고생한 www.acmicpc.net 관련 개념 : KMP 2022.01.12 - [Algorithm/개념] - [알고리즘 개념] KMP - 문자열 검색 알고리즘(JAVA 코드) /** * * 문자열 문제 * * 1. kmp 알고리즘 중 부분 문자열 내부에 패턴 파악 코드 사용 * * 2. 패턴 경계 길이 중 가장 긴 것 출력 * * 3. 하지만 기존 코드로는 앞에서부터만 체크하니, 전체 문자열 .. 2022. 1. 15.
[알고리즘 문제풀이] 백준 2667_단지번호붙이기(JAVA) https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net /** * dfs& bfs 풀이(bfs 사용) * * 1. 지도를 돌면서, 집을 만나면 bfs 실행 * * 2. bfs로 방문여부 및 개수 파악(각 번호 카운트 증가) * * 3. bfs 종료 시 각 카운트 번호 출력 * * 4. 다시 지도 돌면서 체크(방문여부로 체크된 곳은 건너뛰기) */ import java.util.*; import java.io.*; public class BJ2667_단지.. 2022. 1. 14.
[알고리즘 문제풀이] 백준 1992 쿼드트리(JAVA) https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net /** * 분할정복 문제 * * 1) 숫자 파악 * * 2) 전체 숫자가 같지 않으면, 4분할 * * 3) 각 분할정보를 기록 */ import java.util.*; import java.io.*; public class BJ1992_쿼드트리 { public static int[][] arr; public static BufferedWriter bw = new BufferedWrit.. 2022. 1. 14.
[알고리즘 문제풀이] 백준 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.