컴퓨터 공학/백준75 [백준] JAVA 자바 : 알파벳 개수 (10808번) 문자열을 입력받고, 그 문자열에 존재하는 알파벳(a~z)의 개수를 모두 세는 문제이다. 사실 문제도 되게 쉽고… 난이도만 봐도 브론즈 급이라서 어차피 알고리즘 공부하시는 분들이라면 큰 어려움 없이 푸실 수 있을 듯. 나 같은 경우는 그냥 알파벳의 빈도 수를 저장하는 int 배열 n_list를 만들어서 알파벳을 만날 때마다 +1 해주었다. import java.io.*; public class NumberOfAlphabet_10808 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb =.. 2024. 1. 20. [백준] JAVA 자바 : 후위 표기식 (1918번) 중위 표기식을 후위 표기식으로 바꾸는 문제이다. 분명 이거 작년에 자료구조 수업 들으면서 배웠는데… 하 알고리즘이 기억이 안 나서 한 시간 정도 애 먹었다… 아니 진짜 바본가 왜 이걸 생각을 못 하지?? 스택은 하나만 써도 충분하고, 알파벳을 만나면 그냥 바로 StringBuilder에 담으면 된다… 알파벳을 굳이 스택에 넣을 필요가 없는데 왜 계속 그걸 붙잡고 있었지????? 그리고 ‘(‘랑 ‘)’를 잘 처리해 줘야 한다… ‘(‘를 만나면 스택에 담지만, 이것을 스택에서 빼는 것은 그 어떤 연산자도 할 수 없고 오로지 ‘)’만이 가능하도록 설정해 주어야 한다. 그렇지 않으면 괄호의 우선순위가 이상해져버림. ‘+’와 ‘-‘는 모든 연산자를, ‘*’와 ‘/’는 ”와 ‘/’만 출력 가능한 것처럼 ‘(‘는 ‘.. 2024. 1. 20. [백준] JAVA 자바 : 후위 표기식2 (1935번) 후위 표기식을 구현하는 문제이다. 사실 알파벳 마다 숫자를 대응시키는 것만 잘 해줬다면 큰 어려움 없이 쉽게 풀 수 있을 듯? 나 같은 경우에는 N개 만큼 배열 n_list를 만들어서 알파벳 A를 입력받으면 n_list[(int)A-65]에 그 수를 담고, 이후에 알파벳을 만나면 그 배열에서 수를 꺼내서 스택에 담는 형태로 코딩했다. 사실 나는 후위표기식에서 처음 pop()한 수가 오른쪽 피연산자가 되는 줄 모르고 계속 왼쪽에 두고 짰다가 이상한 결과가 나와서… 이번 기회에 제대로 배워간다… import java.io.*; import java.util.Stack; public class Postfix2_1935 { public static void main(String[] args) throws IOE.. 2024. 1. 20. [백준] JAVA 자바 : 오등큰수 (17299번) 앞에서 공부했던 오큰수의 심화 버전이다. 오큰수는 그냥 단순히 수를 비교하면 됐는데, 오등큰수의 경우에는 수의 개수를 비교해야 한다. 사실 앞에 오큰수는 혼자 해결할 수 없어서 구글링을 해서 공부했는데, 그 방식을 머릿속에 익힌 뒤에 그걸 좀 응용해서 오등큰수를 해결했다. 어떻게 해결했냐? 사실 앞에서 배운 오큰수와 거의 같은 알고리즘을 사용한 것 같긴 한데… 차이점은 바로 n_list라는 빈도 수를 저장하는 배열을 만들어서 스택에서 요소를 꺼내면 그 요소끼리 비교하는 게 아니라, 그 요소의 빈도 수를 저장한 n_list[요소]를 비교하게 하는 거다. 자세한 건 아래의 코드에 주석을 참고하십셔! package BJoon.자료구조1; import java.io.*; import java.util.Stack.. 2024. 1. 20. [백준] JAVA 자바 : 오큰수 (17298번) 백준으로 공부하면서 부딪힌 첫 난관… 아무리 진짜 그 어떤 방법을 써도 난 n제곱에서 시간을 줄일 방법이 기억이 안 나서… 다른 분 블로그를 참고했다. [알고리즘] 백준 17298 오큰수 Java 문제 정보플랫폼 : 백준분류 : Stack (스택)난이도 : 골드 4링크 : https://www.acmicpc.net/problem/9184시간제한 및 메모리 제한 검증O(n) 풀이자료형 : 최대 1백만, int풀이스택을 두개 사용한다. 한 개는 정답 velog.io 진짜 도대체 이 문제를 스택으로 어떻게 푸는 건가 했는데… 이런 방법이 있었다니… 어떻게 어떻게 문제를 풀긴 했는데 사실상 내가 푼 게 아니라 거의 베꼈다고 봐도 무방하다. 하 진짜 아직도 난 부족한가?? 진짜 절망스럽네 ㅋㅋㅋ 고작 골드에서 막.. 2024. 1. 20. [백준] JAVA 자바 : 쇠막대기 (10799번) 여러 길이의 막대기를 여러 개 입력 받아 레이저로 잘랐을 때, 최종적으로 몇 개의 막대기가 생기는지 묻는 문제이다. 처음에 문제만 읽었을 땐 진짜 완전 어려워 보였는데… 막상 생각을 좀 하니 알고리즘이 슉슉 떠오르던 생각보다 쉬운 문제였다…! 어떻게 풀었냐??! 그건 아래의 코드에 주석을 다 달아놨으니 코드를 보십셔! import java.io.*; import java.util.Stack; import java.util.Queue; import java.util.LinkedList; public class IronStick_10799 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedR.. 2024. 1. 20. 이전 1 ··· 8 9 10 11 12 13 다음 반응형