본문 바로가기

알고리즘42

[백준 2151] 거울 설치(JAVA) https://www.acmicpc.net/problem/2151 2151번: 거울 설치 첫째 줄에 집의 크기 N (2 ≤ N ≤ 50)이 주어진다. 다음 N개의 줄에는 N개의 문자로 집에 대한 정보가 주어진다. ‘#’는 문이 설치된 곳으로 항상 두 곳이며, ‘.’은 아무 것도 없는 것으로 빛은 이 곳을 통과한다. ‘!’은 거울을 설치할 수 있는 위치를 나타내고, ‘*’은 빛이 통과할 수 없는 벽을 나타낸다. www.acmicpc.net 우선순위큐를 안쓰고 그냥 큐를 써서 틀렸다.. visit배열을 3차원으로 선언해서 방향까지 체크해줬다. 거울이 있는 경우에 반시계방향 or 시계방향으로 90도 회전하는 경우를 추가해주었다. import java.io.BufferedReader; import java.io.. 2020. 3. 23.
[백준 8979] 올림픽(JAVA) https://www.acmicpc.net/problem/8979 8979번: 올림픽 입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각 국가를 나타내는 정수와 이 국가가 얻은 금, 은, 동메달의 수가 빈칸을 사이에 두고 주어진다. 전체 메달 수의 총합은 1,000,000 이하이다. www.acmicpc.net import java.util.PriorityQueue; import java.util.Scanner; class Medal implements Comparable{ int country; int g; int s; int c; pu.. 2020. 3. 21.
[백준 1309] 동물원(JAVA) https://www.acmicpc.net/problem/1309 1309번: 동물원 첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다. www.acmicpc.net dp[N][3] 배열은 만들어 dp[i][1]에는 i번째 첫번째 열에 사자를 넣을 수 있는 경우의 수, dp[i][2]에는 i번째 두번째 열에 사자를 넣을 수 있는 경우의 수, dp[i][0]에는 i번째 줄에 사자를 하나도 넣지 않은 경우의 수가 들어가도록 해줬다. import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { final static int MOD=9901; public static void main(String[] args).. 2020. 3. 18.
[백준 1543] 문서 검색(JAVA) https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한다. 예를 들어, 문서가 abababa이고, 그리고 찾으려는 ababa라면, 세준이의 이 함수는 이 단어를 0번부터 찾을 수 있고, 2번부터도 찾을 수 있다. 그러나 동시에 셀 수는 없다. 세준이는 문서와 검색하려는 단어가 주어졌을 때, 그 단어가 최대 몇 번 중복되지 www.acmicpc.net 인덱스 생각을 잘못해서 두 번 틀렸다.. 인덱스 설정에 주의하자!! import java.io.BufferedReader; import .. 2020. 3. 17.
[백준 6118] 숨바꼭질(JAVA) https://www.acmicpc.net/problem/6118 6118번: 숨바꼭질 문제 재서기는 수혀니와 교외 농장에서 숨바꼭질을 하고 있다. 농장에는 헛간이 많이 널려있고 재서기는 그 중에 하나에 숨어야 한다. 헛간의 개수는 N(2 2020. 3. 16.
[SWEA 1868] 파핑파핑 지뢰찾기(JAVA) https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5LwsHaD1MDFAXc SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com package day6; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Solution_d4_1868_파핑파핑지뢰찾기 { static int N, ans.. 2020. 3. 16.
[SWEA 3378] 스타일리쉬 들여쓰기(JAVA) https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWD3nB5q3T0DFAUZ SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 자바에서 배열에 배열 복사는 주소값이 복사되므로, for문으로 일일히 복사하자! package day5; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.StringT.. 2020. 3. 13.
[백준 9019] DSLR(JAVA) https://www.acmicpc.net/problem/9019 9019번: DSLR 문제 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 저장된 n을 다음과 같이 변환한다. n의 네 자릿수를 d1, d2, d3, d4라고 하자(즉 n = ((d1 × 10 + d2) × 10 + d3) × 10 + d4라고 하자) D: D 는 n을 두 배로 바꾼다. 결과 값이 9999 보다 큰 경 www.acmicpc.net BFS문제이다. 처음에 숫자가 아닌 문자열로 구현해서 처리하는 방식으로 했더니 시간초과가 났다. 꼭 문자열만 사용해야 하는 경우가 아니면.. 2020. 3. 13.
[백준 15989] 1,2,3 더하기 4(JAVA) https://www.acmicpc.net/problem/15989 15989번: 1, 2, 3 더하기 4 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 4가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 합을 이루고 있는 수의 순서만 다른 것은 같은 것으로 친다. 1+1+1+1 2+1+1 (1+1+2, 1+2+1) 2+2 1+3 (3+1) 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net import java.util.Scanner; public class Main_bj_15989_123더하기4 { public static void main(String[] args) { Scanner sc= new.. 2020. 3. 13.