백준알고리즘

    [4949] 균형잡힌 세상 (Python)

    [4949] 균형잡힌 세상 (Python)

    링크 : https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net 문제 생각 정리 일단 stack으로 하면 된다는 생각까지가 힘들었다.. 만약 stack으로 해줄 수 있다는 걸 알았으면 시간이 더 단축됐을텐데말이다. stack을 이용하면 '(' or '[' 는 그냥 입력하고 ')' or ']'는 각각 '(' or '['가 있는지 확인을 해준 후, 있다면 빼주는 것이다. stack에 들어가는 것은 '('와 '[' 뿐인 것이다. stack이 ..

    [10828] 스택 (Python)

    [10828] 스택 (Python)

    링크 : https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 문제 분류 자료구조 스택 생각 정리 입력을 꽤 많이 받으므로 input()이 아닌 readline()으로 입력을 받아야 겠다. stack(리스트)에 쓸 수 있는 push, pop, top, size, empty 문법을 생각해본다. 큐와는 또 다르므로 주의! push : append() pop : pop() top : [-1] (따로 top()이 아니라 그냥 맨 위의 것을..

    [9012]  괄호 (Python)

    [9012] 괄호 (Python)

    링크 : https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 어려운 문제를 계속 풀어와서 그런지 상대적으로 쉬운 문제도 어렵게 풀고 있었어서 해결하는데 꽤 애를 먹었다.. 이 문제는 로직만 생각해내면 쉽게 풀 수 있을 것 같다 분류 자료구조 문자열 스택 생각 정리 1. '('의 개수와 ')'의 개수가 같아야한다. 2. '(' 가 나오기 전에 ')'가 나오면 안된다. '('를 +1로, ')'를 -1로 생각해서 1. su..

    [10818] 최소, 최대

    [10818] 최소, 최대

    몇개의 값을 넣을 건지 정하고, 그 값들을 넣은 후, 그 값들 중 최솟값고 최댓값을 구하면 되는 문제이다. 처음에 넣는 값을 배열의 길이에 넣고, 반목문을 돌리면서 값하나하나를 배열에 넣어줬고, 넣어주면서 최소최대도 같이 처리해주었다. 처음 최댓값, 최솟값에 넣을 변수는 최댓값에는 가장 작은 값으로, 최솟값에는 가장 큰 값으로 넣으면 된다. 여기서 정수의 범위가 -1000000~1000000이라 했으므로 그 사이의 값을 넣었다. 백준알고리즘문제풀이에서는 클래스이름을 무조건 Main으로 해줘야 할 것이다. 처음에 이걸 모를 땐 한참을 헤멨었다.. +) int a는 굳이 선언해줄 필요는 없다. 바로 array[i]에 넣으면 될 것이다.

    [2523번] 별 찍기 - 13

    [2523번] 별 찍기 - 13

    우선 처음에 중간에서 별을 적게 하는 방법으로 뭐가 있을까 고민을 해봤다. 그래서 생각해낸 것이 줄의 개수가 절반까지 오면 다시 줄어들도록 조건문을 써야겠다! 생각이 들어서 그후부터는 연산을 해보면서 조건문을 만들어냈고, 조건문 안에 다시 줄어드는 for문을 적었다! 결국 코드는 늘어나는 for문 + 조건문 + 줄어드는 for문 형식이다. import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for (int i=1;i0;j--) { for (int k=0;k

    [10817번] 세 수

    [10817번] 세 수

    나는 배열의 각 값들을 비교해주어서 tmp변수로 재정렬을 해주는 식을 이용했다. import java.util.Scanner; public class Main { public static void main(String[] args) { int[] num = new int[3]; Scanner sc = new Scanner(System.in); int tmp; for (int i=0;i=c || c>=b && b>=a) num = b; else if (b>=a && a>=c || c>=a && a>=b) num = a; else num = c; System.out.println(num); sc.close(); } }