본문 바로가기

728x90
반응형

Java/Java 알고리즘 인프런

(110)
[Ch.04 - StackQueue] 04. 후위식 연산(postfix) (+ char to int) 4. 후위식 연산(postfix) 설명 후위연산식이 주어지면 연산한 결과를 출력하는 프로그램을 작성하세요. 만약 3*(5+2)-9 을 후위연산식으로 표현하면 352+*9- 로 표현되며 그 결과는 12입니다. 입력 첫 줄에 후위연산식이 주어집니다. 연산식의 길이는 50을 넘지 않습니다. 식은 1~9의 숫자와 +, -, *, / 연산자로만 이루어진다. 출력 연산한 결과를 출력합니다. 예시 입력 1 352+*9- 예시 출력 1 12 import java.util.Scanner; import java.util.Stack; public class Main { public int solution(String str) { int answer=0; Stack stack = new Stack(); for (char x ..
Java 형변환 정리 변환 전 변환 후 String Int int a =Integer.parseInt(str) Int String String str = Integer.toString(a) char String String str=String.valueOf(char) char Int int a = Character.getNumbericValue(c) Int[아스키 코드 변환] char char c = (char) int; char[] String String str=String.valueOf(arr) String str= Arrays.toString(charArr); String char[] char [] arr = str.toCharArray(); Character.isDigit Character.isLetter Chara..
[Ch.05 - StackQueue] 03. 크레인 인형뽑기(카카오) 3. 크레인 인형뽑기(카카오) 설명 게임개발자인 죠르디는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. 죠르디는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 1 x 1 크기의 칸들로 이루어진 N x N 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 5 x 5 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 1 x 1 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에 쌓이게 되는 ..
[Ch.05 - StackQueue] 02. 괄호문자제거 2. 괄호문자제거 설명 입력된 문자열에서 소괄호 ( ) 사이에 존재하는 모든 문자를 제거하고 남은 문자만 출력하는 프로그램을 작성하세요. 입력 첫 줄에 문자열이 주어진다. 문자열의 길이는 100을 넘지 않는다. 출력 남은 문자만 출력한다. 예시 입력 1 (A(BC)D)EF(G(H)(IJ)K)LM(N) 예시 출력 1 EFLM 문제 풀이 세 가지 방법 1. 괄호 상관없이 모두 넣고, 닫는 괄호가 나오면, 여는 괄호가 나올 때까지 pop 2. 괄호만 스택에 넣고, 스택이 비어있을 때만, 문자열에 추가 3. import java.util.*; public class Main { public Stack solution(String str) { Stack stack = new Stack(); char[] arr =..
[Ch.05 - StackQueue] 01. 올바른 괄호 1. 올바른 괄호 설명 괄호가 입력되면 올바른 괄호이면 “YES", 올바르지 않으면 ”NO"를 출력합니다. (())() 이것은 괄호의 쌍이 올바르게 위치하는 거지만, (()()))은 올바른 괄호가 아니다. 입력 첫 번째 줄에 괄호 문자열이 입력됩니다. 문자열의 최대 길이는 30이다. 출력 첫 번째 줄에 YES, NO를 출력한다. 예시 입력 1 (()(()))(() 예시 출력 1 NO import java.util.Scanner; import java.util.Stack; //올바른 괄호 //isEmpty로 확인 //push, peek,pop public class Main { public String solution(String str) { String answer = "YES"; Stack stack ..
[Ch.04 - HashTree] 03. 매출액의 종류 # 3. 매출액의 종류 설명 현수의 아빠는 제과점을 운영합니다. 현수아빠는 현수에게 N일 동안의 매출기록을 주고 연속된 K일 동안의 매출액의 종류를 각 구간별로 구하라고 했습니다. 만약 N=7이고 7일 간의 매출기록이 아래와 같고, 이때 K=4이면 20 12 20 10 23 17 10 각 연속 4일간의 구간의 매출종류는 첫 번째 구간은 [20, 12, 20, 10]는 매출액의 종류가 20, 12, 10으로 3이다. 두 번째 구간은 [12, 20, 10, 23]는 매출액의 종류가 4이다. 세 번째 구간은 [20, 10, 23, 17]는 매출액의 종류가 4이다. 네 번째 구간은 [10, 23, 17, 10]는 매출액의 종류가 3이다. N일간의 매출기록과 연속구간의 길이 K가 주어지면 첫 번째 구간부터 각 구간별..
[Ch.04 - HashTree] 02. 아나그램(해쉬) (+ 삼항연산자) 2. 아나그램(해쉬) 설명 Anagram이란 두 문자열이 알파벳의 나열 순서를 다르지만 그 구성이 일치하면 두 단어는 아나그램이라고 합니다. 예를 들면 AbaAeCe 와 baeeACA 는 알파벳을 나열 순서는 다르지만 그 구성을 살펴보면 A(2), a(1), b(1), C(1), e(2)로 알파벳과 그 개수가 모두 일치합니다. 즉 어느 한 단어를 재 배열하면 상대편 단어가 될 수 있는 것을 아나그램이라 합니다. 길이가 같은 두 개의 단어가 주어지면 두 단어가 아나그램인지 판별하는 프로그램을 작성하세요. 아나그램 판별시 대소문자가 구분됩니다. 입력 첫 줄에 첫 번째 단어가 입력되고, 두 번째 줄에 두 번째 단어가 입력됩니다. 단어의 길이는 100을 넘지 않습니다. 출력 두 단어가 아나그램이면 “YES"를 ..
[Ch.04 - HashTree] 01. 학급 회장(해쉬) (+Map.Entry, entrySet()) 1. 학급 회장(해쉬) 설명 학급 회장을 뽑는데 후보로 기호 A, B, C, D, E 후보가 등록을 했습니다. 투표용지에는 반 학생들이 자기가 선택한 후보의 기호(알파벳)가 쓰여져 있으며 선생님은 그 기호를 발표하고 있습니다. 선생님의 발표가 끝난 후 어떤 기호의 후보가 학급 회장이 되었는지 출력하는 프로그램을 작성하세요. 반드시 한 명의 학급회장이 선출되도록 투표결과가 나왔다고 가정합니다. 입력 첫 줄에는 반 학생수 N(5 키에 해당하는 값이 없으면 0을 넣고 1를 추가한다. 추출 -> 키로만 이루어진 자료구조 (키셋) for(Character x : map.keySet()){ map.get(key) 키셋에서 키에 해당하는 값 } 참고 : 키에는 인덱스가 존재하지 않는다. -> 순서가 존재하지 않는다...

728x90
반응형