[BoJ] - 10799번 쇠막대기
·
알고리즘/백준
해결 아이디어방법: 스택(Stack) 활용괄호 열기(( 또는 [)는 스택에 push괄호 닫기() 또는 ])를 만나면:스택을 pop하면서, 숫자를 모아 중첩된 값을 계산가장 먼저 나오는 괄호쌍이 올바른지 확인계산된 값을 다시 스택에 push모든 문자열을 처리한 후, 스택에 남은 숫자들을 더한 것이 결과중간에 잘못된 괄호 구조가 있다면 0 출력 import java.io.*;import java.util.*;public class 쇠파이프 { static StringBuffer sb; static BufferedReader br; static char[] chars; static Stack stack; static void input() { try { ..
[BoJ] - 2504번 괄호의 값
·
알고리즘/백준
입력괄호열을 나타내는 문자열이 한 줄로 주어진다.문자열 길이: 1 이상, 30 이하문자열은 '(', ')', '[', ']'로만 구성됨출력주어진 괄호열이 올바른 괄호열이라면 계산된 정수 값을 출력올바르지 않은 괄호열이라면 0 출력 해결 아이디어 열린 괄호 (, [ 는 스택에 push닫힌 괄호 ), ] 가 나오면:스택에서 열린 괄호 또는 중간 숫자들을 꺼내며 계산올바른 짝인지 확인하고, 중간 값을 2 또는 3 곱하여 다시 스택에 push괄호열이 끝나고 스택에 정수만 남았다면, 모두 더해서 결과 반환중간에 잘못된 구조 발견 시 즉시 0 출력다음 조건 중 하나라도 해당되면 0을 출력합니다.열린 괄호 없이 닫힌 괄호가 나올 때괄호쌍이 서로 맞지 않을 때 (( ] 또는 [ ))문자열 처리 후 스택에 괄호가 남아..
[BoJ] - 2493번 탑
·
알고리즘/백준
입력첫 줄: 탑의 개수 N N N (1 ≤ N N N ≤ 500,000)둘째 줄: N N N개의 탑 높이 (1 ≤ 높이 ≤ 100,000,000), 공백으로 구분높이는 모두 서로 다름 (문제 조건)출력각 탑에서 발사된 레이저를 수신한 탑의 번호를 공백으로 구분해 출력수신 탑이 없으면 0 https://www.acmicpc.net/problem/2493 해결 아이디어이 문제는 스택을 사용하면 효율적으로 해결할 수 있습니다. 스택을 사용하기전 단순하게 접근을 했을떄, 직관적인 해결법은 왼쪽으로 모든 이전 탑을 확인하며, 자신보다 높은 첫 번째 탑을 찾는 것입니다. 예: 5번 탑(높이 4)의 경우, 4번(7), 3번(5), 2번(9), 1번(6)을 순서대로 확인.4번 탑(높이 7)이 높이 4보다 크므로 여..
[BoJ] - 1043번 거짓말
·
알고리즘/백준
문제를 풀면서 1시간 정도 고민을 했었고 1시간 구현해서 풀어낸 문제이다. 골드 4이지만 난이도가 막 어렵지는 않았던 것 같다. 오랜만에 골드 4를 스스로의 힘으로 풀어서 기분이 좋았다 문제 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 과장해서 말한다. 당연히 과장해서 이야기하는 것이 훨씬 더 재미있기 때문에, 되도록이면 과장해서 이야기하려고 한다. 하지만, 지민이는 거짓말쟁이로 알려지기는 싫어한다. 문제는 몇몇 사람들은 그 이야기의 진실을 안다는 것이다. 따라서 이런 사람들이 파티에 왔을 때는, 지민이는 진실을 이야기할 수 밖에 없다. 당연히, 어떤 사람이 어떤..
[BoJ] - 2630번 색종이 만들기
·
알고리즘/백준
문제를 풀면서 한창 고민을 했던 문제이고 내가 약한 재귀 함수 문제를 좀더 연습할수있는 문제여서 정리할겸 글을 작성합니다. 문제 설명 전체 종이의 크기가 N×N(N=2k, k는 1 이상 7 이하의 자연수) 이라면 종이를 자르는 규칙은 다음과 같다. 전체 종이가 모두 같은 색으로 칠해져 있지 않으면 가로와 세로로 중간 부분을 잘라서 의 I, II, III, IV와 같이 똑같은 크기의 네 개의 N/2 × N/2색종이로 나눈다. 나누어진 종이 I, II, III, IV 각각에 대해서도 앞에서와 마찬가지로 모두 같은 색으로 칠해져 있지 않으면 같은 방법으로 똑같은 크기의 네 개의 색종이로 나눈다. 이와 같은 과정을 잘라진 종이가 모두 하얀색 또는 모두 파란색으로 칠해져 있거나, 하나의 정사각형 칸이 되어 더 이..
[BoJ] - 1015번 수열 정렬
·
알고리즘/백준
백준 링크 : https://www.acmicpc.net/problem/1015 문제 설명 처음 문제를 읽어보았을때 정말 이해하기가 어려워서 10번이상을 똑같은 문장을 반복해서 봤다 이해가 안되었문장은 이거였다 B[P[i]] = A[i] 이다. 배열 A가 주어졌을떄 수열 P를 적용한 결과 비 내림차순이 되는 수열을 찾는 프로그램을 작성하세요 B[P[i]] = A[i] 이게 도대체 무슨 의미인가 고민을 했고 이해하기 어려워 질문 게시판을 확인해보았을때 정확히 뭘 요구하는지 이해할수 있었다. 즉 문제가 요구하는 건 "주어진 수열을 정렬시키는 수열 " 이다. 즉 B[P[i]] = A[i] 를 그대로 해석하면 오름차순이 된 B배열의 P[i]는 인덱스 값이다 예를 들면 A : 2 3 1 B : 1 2 3 B[1]..
cafe-jun12
'알고리즘/백준' 카테고리의 글 목록