알고리즘/자료구조 6

[백준알고리즘] 스택 - 2304번 창고 다각형 문제

ㅋㅋㅋㅋㅋ네번만에 성공했다^^ 스택으로 어찌저찌 풀도록 구현은 했는데 뺴먹은게 너무 많았었다. 경우의 수들을 다 생각 못했었고 마지막에는 >=, >관련해서 제대로 안해놔서 두번이나 틀렸었다 높이가 같은 경우를 다 고려 못했었음 늘 비교 연산자 주의하자..이런걸로 자주 틀리는것같다 예전에 풀어봤던(사실 코드를 짜본건 아니고 풀이법 이해하고 넘어가는정도로 그쳤지만..) 히스토그램 문제도 생각났음.. 코드가 몹시 조악하지만 일단 정리안한채로 올려본다 package baekjoonWeek5; import java.io.*; import java.util.Arrays; import java.util.Stack; import java.util.StringTokenizer; public class BJ_2304 { ..

[백준알고리즘] 자료구조 - 1966번 프린터 큐 문제

일단 내가 짠 코드만 올려놨고 풀이과정은 추후 써서 업뎃하도록 하겠다.!! package week1; import java.io.*; import java.util.StringTokenizer; class Queue { //큐 클래스 구현 final int arraySize = 1000; int[] arr; int front; //맨 앞에있는 원소의 인덱스 int rear; //맨 뒤에있는 원소의 인덱스 public Queue(){ front = 0; rear = 0; arr = new int[arraySize]; } boolean isQueueEmpty(){ return front == rear; } boolean isQueueFull(){ return rear == arraySize-1; //rear..

[백준알고리즘] 자료구조 - 1158번 요세푸스 수열 문제(수정해서 적는중)

더 쉬운 방법이 있겠지만 굳이굳이 원형 연결 리스트 구현해서 풀었음 첫번째 시도: 문제에 있는 예제대로 출력이 되는데 오답이 뜸 질문답변 게시판에 있는 다른 예시 입력값을 넣어봄 아차 출력부분에서 문제가 있었다 stringBuilder와 charAt을 써서 두자리 이상의 붙어있는 문자열들이 구분이 제대로 안됐던것 두번째 시도: 이걸 고쳤더니 이번엔 런타임 에러 - nullpointerException이 뜬다 왜지 아. 입력값으로 1 1로 넣어보니 그렇구나 문제에서 충분히 여러 입출력 예시를 주지 않을수록 내가 생각할게 많아져 어려운듯하다 for (int i = 0; i < K-1; i++) { 삭제연산중 이 for문의 조건 때문이었다 K가 1이 들어오는 예외적 상황을 따로 if문으로 처리했다 head, ..

[백준알고리즘] 자료구조 - 1874번 스택 시퀀스 문제

뜯어고친 흔적도 남아있고 지저분한 주석에..다듬지 못한 코드지만 피곤한 나머지 일단 통과한대로 올려본다. 계속 메모리 초과가 떠서 패스를 못하다가 자바의 StringBuilder를 사용하여 메모리 초과 문제는 해결했다. 원래는 StringBuilder대신 String변수에다 + 연산을 이용해서 + 또는 - 문자열을 넣도록 했었는데 그게 문제가 되었던 것! 가물가물한데 다시 개념 다잡고 익숙하게 사용하는 습관을 들여야겠다.! 풀이과정 등 자세한건 내일 다시 수정해서 포스팅하겠다 (진짜로..) package week1; import java.io.*; import java.util.Stack; public class StackSequence { //백준 1874번, 스택 시퀀스 문제 public static..

[백준알고리즘] 자료구조 - 9012번 VPS 문제

https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 딱봐도 스택 써서 풀라고 만든 문제처럼 생겼지만 나는 일단 스택을 직접 구현해서 풀진 않았다 문자열을 훑다가 (가 나오면 isLeft라는 변수값을 증가시키고, 반대로 )가 나온다면 감소시키는 방식으로 나름 간단하게 풀어보려 했다 문자열 탐색이 다 끝나고 났을때 IsLeft값이 0이 되었다는건 괄호가 다 맞아떨어져 vps라는 의미이므로 yes를 출력하면 되고 값이 0보..

[백준알고리즘] 자료구조 - 1725번 히스토그램 문제(재도전할 문제)

https://www.acmicpc.net/problem/1725 1725번: 히스토그램 첫 행에는 N (1 ≤ N ≤ 100,000) 이 주어진다. N은 히스토그램의 가로 칸의 수이다. 다음 N 행에 걸쳐 각 칸의 높이가 왼쪽에서부터 차례대로 주어진다. 각 칸의 높이는 1,000,000,000보다 작거나 같은 www.acmicpc.net 알고리즘 스터디원분께서 선정해주신 문제중 하나이다. 신나게 잘못 풀다 정신을 차려보니 생각보다도 더 어려운 문제였구나 느꼈다.. 혼자서 처음부터 풀려다가는 시간이 끝도 없이 흐를 것 같아 다른 분들의 블로그들을 참고해가며 풀이법을 최대한 이해하고 정리부터 하고 시작하기로 한다. 크게 분할정복 방식/스택 풀이방식 둘로 나뉘는 것 같은데 지금 스택을 복습중인 만큼 스택 풀..