문제 링크 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 풀이 단순 스택을 구현하는 문제로, List배열을 사용했음 아래 사진은 StringBuffer와 System.out.print의 시간 차이 (중간에는 stringbuffer을 sysout해주지 않음....) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader..
문제 링크 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 풀이 자기 전에 문제 하나 풀고 자야지~~ 하면서 풀었던 문제 실버 3 문제라 DP로의 접근은 쉬웠으나, 뜻하지 않게 ArrayIndexOutOfBounds Exception으로 고생했음.. 반 졸린 상태에서 풀어서~~ 라고 핑계를 대보지만. 실수를 줄이기 위해 항상 신경써야겠다고 다짐한 문제로. 상기시키기 위해 포스팅.... import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; publi..
문제 링크 https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 풀이 자신있는 DFS로 풀었고, BFS는 몇 번 해보지 않아 사용을 해보기로 했다. DFS import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class BakJoon1012 { public static void ..
문제 링크 https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 풀이 첫 번째로 제출했을 때 시간이 초과했고 들여다봤더니, 한가지 실수를 범했는데, 이게 엄청 큰 시간을 차지했다. n의 범위가 100,000까지인데 전부다 String의 메서드를 반복적으로 호출했다. String arr = br.readLine(); List list = new ArrayList(); for(int j=0; j n) return true; } for(String psplit : p.split("")) { if(psplit.e..
문제 링크 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 잡설 이제 백준도 어느정도 입출력 포맷에 적응이 된 것 같다. 적응을 위해 실버 문제들을 풀어보고 있었는데, 프로그래머스와 비교하면 쉬운 2레벨 문제정도인 것 같다. 백준이 문제가 다양하게 많은 플랫폼이다보니, 슬슬 대회 탭의 문제들을 풀어가며 문제 해결능력을 키워야겠다 풀이 딱히 고려할 부분이 있지는 않..
문제 링크 https://www.acmicpc.net/problem/18111 18111번: 마인크래프트 팀 레드시프트는 대회 준비를 하다가 지루해져서 샌드박스 게임인 ‘마인크래프트’를 켰다. 마인크래프트는 1 × 1 × 1(세로, 가로, 높이) 크기의 블록들로 이루어진 3차원 세계에서 자유롭게 www.acmicpc.net 풀이 단순 브루트 포스로 다 때려박아서 구했다. 문제에서 시간제한과 메모리 크기가 주어졌고, 메모리 크기가 가장 클 것으로 예상되는 minecraft 배열은 최대 크기가 500*500의 int 배열이며, 이는 500*500*4로 최대 1,000,000바이트의 메모리를 차지한다. 계산기를 두드려보니 0.95MB 정도 차지하는 것 같다. 나머지 코드들은 파싱을 위한 변수 사용 등으로, 크..
문제 링크 https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 풀이 이진탐색을 활용하는 문제이다. [알고리즘] 이진탐색(이분탐색) - Binary Search Binary Search 정렬된 데이터 집합을 이분화 하면서 탐색하는 방법 정렬되어 있어야 한다 보통 세 개의 변수를 지정해 두고 (ex : left, mid, right) 찾고자 하는 값, 즉 mid의 값이 찾아낸 값보다 크면 mid는 mag1c.tistory...
문제 링크 https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 서론 지조있게(?) 프로그래머스 업로드를 기다리다가 드디어 포기하고 백준에 입문하게 되었다. 찾아보니 작년 12월에 풀었던 이력이 있었으며, 그 때는 백준에서의 테스트 포맷이 프로그래머스와 너무 달라 입출력에 난항을 겪어 후퇴했던 기억이 있다. 하지만 leetcode와 hackerrank로 단련된 지금, 백준을 통해 꾸준히 문제를 풀어 나..