본문 바로가기

분류 전체보기59

[SWEA 5684] 운동(JAVA) https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRxnnah2sDFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 처음에 dfs로 잘못 생각해서 스택오버플로우가 났다. 다익스트라로 다시 생각해서 풀었다. 테스트케이스에 공백값들이 들어 있어서 BufferedReader를 사용하면 런타임에러가 뜨길래, Scanner로 입력을 받았다. if(nowDist>ans) continue; 구문을 추가해주니 시간은 반절이상 줄었고, 메모리도 줄었다. import java.io.BufferedReader; import java.. 2020. 3. 5.
[백준 2563] 색종이(JAVA) https://www.acmicpc.net/problem/2563 2563번: 색종이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 붙인다. 이러한 방식으로 색종이를 한 장 또는 여러 장 붙인 후 색종이가 붙은 검은 영역의 넓이를 구하는 프로그램을 작성하시오. 예를 들어 흰색 도화지 위에 세 장의 검은색 색종이를 그림과 같은 모양으로 붙였다면 검은색 영역의 넓이는 260이 된다. www.acmicpc.net 색종이 좌표를 받으면서, 이전에 색칠된 자리가 아니면 카운트를 증가시키면 되는 간단한 문제이다. import java.io.BufferedReader; .. 2020. 3. 5.
[백준 13460] 구슬 탈출2(JAVA) https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' 로 이루어져 있다. '.'은 빈 칸을 의미하고, '#'은 공이 이동할 수 없는 장애물 또는 벽을 의미하며, 'O'는 구멍의 위치를 의미한다. 'R'은 빨간 구슬의 위치, 'B'는 파란 구슬의 위치이다. 입력되는 모든 보드 www.acmicpc.net 7달 전에 풀다 포기한 문제였다..^_ㅠ 생각해줘야 하는 조건이 많아서 주의 해야 한다. 이동 후, 빨간 구슬과 파란 구슬이 겹.. 2020. 3. 5.
[SWEA 1907] 모래성 쌓기(JAVA) https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PNx_KACIDFAUq SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 처음에는 모래가 있는 칸마다 계산하도록 했는데, 시간초과가 났다. 이를 해결하기 위해 모래가 없는 칸(.)을 기준으로 계산하도록 했다. 처음 파도가 칠 때는 젤 바깥쪽 모래가 없는 칸들만 계산을 해주고, 이후에는 깎여서 모래가 없어진 칸들로만 계산해줬다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.. 2020. 3. 4.
[SWEA 8382] 방향 전환(JAVA) https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWyNQrCahHcDFAVP SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com visit배열을 3차원으로 만들어서 가로, 세로방향 둘 다 체크할 수 있도록 했다. 맵이 -100부터 100이여서 좌표를 0부터 200까지받을 수 있도록 바꿔줬다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.ut.. 2020. 3. 4.
[백준 2054] 괄호의 값(JAVA) https://www.acmicpc.net/problem/2504 2504번: 괄호의 값 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 X가 올바른 괄호열이면 ‘(X)’이나 ‘[X]’도 모두 올바른 괄호열이 된다. X와 Y 모두 올바른 괄호열이라면 이들을 결합한 XY도 올바른 괄호열이 된다. 예를 들어 ‘(()[[]])’나 ‘(())[][]’ 는 올바른 괄호열이지만 ‘([)]’ 나 ‘(()( www.acmicpc.net 여는 괄호 (,[ 이면 스택에 넣어주고, 닫는 괄호면 스택의 가장 끝에 들어있는 값이 맞는 짝인지 확인해줬다. val 값을 1로 두고 , .. 2020. 3. 4.
[백준 2174] 로봇 시뮬레이션(JAVA) https://www.acmicpc.net/problem/2174 2174번: 로봇 시뮬레이션 문제 가로 A(1≤A≤100), 세로 B(1≤B≤100) 크기의 땅이 있다. 이 땅 위에 로봇들이 N(1≤N≤100)개 있다. 로봇들의 초기 위치는 x좌표와 y좌표로 나타난다. 위의 그림에서 보듯 x좌표는 왼쪽부터, y좌표는 아래쪽부터 순서가 매겨진다. 또한 각 로봇은 맨 처음에 NWES 중 하나의 방향을 향해 서 있다. 초기에 서 있는 로봇들의 위치는 서로 다르다. 이러한 로봇들에 M(1≤M≤100)개의 명령을 내리려고 한다. 각각의 명령은 순차적으로 www.acmicpc.net 위 그림과 같이 맵이 일반적인 다른 문제들과 다르게, 행번호가 밑에서 부터 1로 시작한다. 그래서 맵을 상하반전 시켜서 생각해봤다... 2020. 3. 4.
[백준 1966] 프린터 큐(JAVA) https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 문제 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 www.acmicpc.net 큐를 q1(오리지널 큐), q2(임시 큐)로 두 개 만들어서 풀었다. q1의 맨 앞의 값을 미리 빼놓고, 큐에 들어 있는 나머지 값들과.. 2020. 3. 4.
[SWEA 4534] 트리흑백색칠(JAVA) https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWO6esOKOKQDFAWw SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Solution_d5_4534_트리흑백색칠 { static final int MOD = 1000000007; static int N; static List[] adj; static long[][] memo; //색상, 정점 번호 public.. 2020. 3. 3.