99클럽 코테 스터디 7일차 TIL + 쇠막대기

2025. 4. 9. 00:35·📝 끄적끄적/항해99 코테 스터디

- 오늘의 학습 키워드

쇠막대기


- 풀이

import java.util.Scanner;
import java.util.Stack;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        String input = sc.nextLine();
        System.out.println(solution(input));
    }

    private static int solution(String input) {
        int answer = 0;

        Stack<Character> stack = new Stack<>();
        stack.push(input.charAt(0));

        for (int i = 1; i < input.length(); i++) {
            if (input.charAt(i) == '(') { // (가 나오면 스택에 push
                stack.push('(');
            } else { // )가 나오면
                stack.pop();
                if (input.charAt(i - 1) == '(') {
                    // 1. 이전 문자가 (면 레이저니까 스택에 쌓인 만큼 조각 수 +
                    answer += stack.size();
                } else {
                    // 2. 이전 문자가 )면 막대기 끝이니까 조각 추가 후 스택에서 pop
                    answer += 1;
                }
            }
        }

        return answer;
    }
}


- 오늘의 회고

이 문제는 풀었던 거였는데 또 나왔다. 그치만 좀 방황했음 ㅎㅎ 

 

  1. '('를 만나면 stack에 '('을 push한다.
  2. ')'를 만났을 경우에는 stack에서 pop을 한다.
    • 만약 ')' 바로 전 문자가 '('이었다면, 그것은 레이저를 의미하므로 answer에 stack의 사이즈만큼 더한다.
    • 만약 ')' 바로 전 문자가 ')'이었다면, 그것은 단순히 닫힌 문자열이므로 answer에 +1을 한다.

(문제의 그림을 보면 알 수 있듯이, 단순한 닫힌 괄호는 하나의 막대 조각을 가리키게 된다.)

 

저작자표시 비영리 (새창열림)

'📝 끄적끄적 > 항해99 코테 스터디' 카테고리의 다른 글

99클럽 코테 스터디 10일차 TIL + 병든 나이트  (0) 2025.04.12
99클럽 코테 스터디 9일차 TIL + 저울  (0) 2025.04.10
99클럽 코테 스터디 8일차 TIL + 한국이 그리울 땐 서버에 접속하지  (0) 2025.04.10
99클럽 코테 스터디 6일차 TIL + 섬의 개수  (0) 2025.04.08
99클럽 코테 스터디 2일차 TIL + 피보나치 비스무리한 수열  (0) 2025.04.02
99클럽 코테 스터디 1일차 TIL + 소수 구하기  (0) 2025.04.01
'📝 끄적끄적/항해99 코테 스터디' 카테고리의 다른 글
  • 99클럽 코테 스터디 9일차 TIL + 저울
  • 99클럽 코테 스터디 8일차 TIL + 한국이 그리울 땐 서버에 접속하지
  • 99클럽 코테 스터디 6일차 TIL + 섬의 개수
  • 99클럽 코테 스터디 2일차 TIL + 피보나치 비스무리한 수열
현주먹
현주먹
대구 불주먹 출신 현주먹의 개발.log
  • 현주먹
    현주먹의 개발로그
    현주먹
  • 전체
    오늘
    어제
    • 전체글 (179)
      • 👶🏻 CS (15)
        • Operating System (7)
        • DB (5)
        • Data Structure (2)
        • Software Engineering (1)
      • 💻 Dev (54)
        • Java & OOP (24)
        • Spring (4)
        • DB&JPA (6)
        • Test Code (1)
        • JSP & Servlet (13)
        • Etc (6)
      • 💡 Algorithm (25)
        • 인프런 (9)
        • 백준 (16)
      • 🛠 DevOps & Tool (11)
        • Linux (4)
        • AWS (1)
        • Git (2)
        • Etc (4)
      • 📝 끄적끄적 (74)
        • 후기 및 회고 (11)
        • TDD, 클린 코드 with Java 17기 (3)
        • F-Lab (23)
        • 🖥️ 자바의 정석 (11)
        • 📖 Clean Code (3)
        • 항해99 코테 스터디 (11)
        • 📖 가상 면접 사례로 배우는 대규모 시스템 설계 .. (11)
  • 블로그 메뉴

    • 🐈‍⬛ GitHub
    • TIL repository
  • 인기 글

  • 최근 글

  • 최근 댓글

  • 태그

    C
    til
    데브클럽
    자바의신절판
    코테스터디
    개발자취업
    오블완
    로또 미션
    에프랩 후기
    에프랩
    f-lab 후기
    NextSTEP
    코딩테스트준비
    개구리책
    객체지향
    jsp 2.3 웹 프로그래밍: 기초부터 중급까지
    백준
    F-Lab
    항해99
    자바의정석
    99클럽
    인프런 특정문자뒤집기
    JPA
    TDD 클린 코드 with Java
    티스토리챌린지
    2025스프링캠프
    jsp
    ==와 equals()
    오라클
    개발자멘토링
  • hELLO· Designed By정상우.v4.10.2
현주먹
99클럽 코테 스터디 7일차 TIL + 쇠막대기
상단으로

티스토리툴바