본문 바로가기

Study for Backend/Programming language - Java

(33)
[Java 기초연습] 프로그래머스 - 행성 X3 https://www.acmicpc.net/problem/2830 import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); int[] binaryCnt = new int[20]; // 1,000,000의 이진 표현은 최대 20비트 필요 int name; long answer = 0L; for (int i = 0; i < N; i++) { name = Integer.parseInt(br...
[Java 기초연습] 프로그래머스 - 짝수는 싫어요 프로그래머스 - 짝수는 싫어요 https://school.programmers.co.kr/learn/courses/30/lessons/120813?language=java //버전 01 class Solution { public int[] solution(int n) { int[] answer = {}; if(n % 2 == 0){ answer = new int[n/2]; }else{ answer = new int[(n/2)+1]; } int cnt = 0; for(int i=0; i
[Java연습] 별 찍기 //for문 연습 - 별찍기 import java.util.Scanner; public class javaBasicPractice04 { public static void solution(int n , int type){ if(type == 1){ type1(n); }else if(type == 2){ type2(n); }else if(type == 3){ type3(n); }else if(type == 4){ type4(n); }else if(type == 5){ type5(n); } } public static void type1(int n){ System.out.println("=== Type1 ==="); for (int i = 0; i < n; i++) { for (int j = 0; j < n..
[Java 연습] Queue를 이용한 요세프스 순열 문제 import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.stream.IntStream; //20240222 /* 요세프스 순열 문제 N과 K가 주어졌을 때 (N,K) 요세프스 순열을 구하시오. N과 K는 N >= K를 만족하는 양의 정수이다. 1부터 N번 까지 N명이 순서대로 원을 이루어 모여있다. 이 모임에서 원을 따라 순서대로 K번째 사람을 제외한다. 모든 사람이 제외될 때까지 반복하며 이 때, 제외되는 순서가 요세푸스 순열이다. */ public class queuePractice03 { public static ArrayList getJosephusPermutation(int N..
[Java 연습] Queue를 이용한 카드 섞기 import java.util.*; import java.util.stream.IntStream; //20240222 카드 섞기 /* 1부터 N까지 번호로 구성된 N장의 카드가 있다. 1번 카드가 가장 위에 그리고 N번 카드는 가장 아래의 상태로 카드가 순서대로 쌓여있다. 아래의 동작을 카드 한 장만 남을 때가지 반복했을 때 가장 마지막 남는 카드 번호를 출력하시오. 1.가장 위의 카드는 버린다. 2.그 다음위의 카드는 쌓여 있는 카드의 가장 아래에 다시 넣는다. */ public class queuePractice02 { public static int findLastCard(int N){ Queue queue = new LinkedList(); IntStream.range(1, N + 1).forEa..
[Java연습] 스택 두 개의 문자열 비교 import java.util.Stack; //20240220 두 문자열 비교 // - 단 #은 백스페이스로 바로 이전의 문자를 삭제한다고 가정 public class stackPractice05 { public static boolean stringCompare(String s1, String s2){ String s1After = doBackSpace(s1); String s2After = doBackSpace(s2); return s1After.equals(s2After); } public static String doBackSpace(String s){ Stack stack = new Stack(); for (char c : s.toCharArray()) { if(c == '#' && !stack..
[Java연습] 스택 후위 표기법 연산 import java.util.Stack; //20240220 후위 표기법 연산 - 소수로 출력 public class stackPractice04 { public static double calculate(String string){ Stack stack = new Stack(); for (String str : string.split(" ")) { if (str.equals("+")){ stack.push(stack.pop() + stack.pop()); } else if (str.equals("-")) { stack.push(- stack.pop() + stack.pop()); } else if (str.equals("*")) { stack.push(stack.pop() * stack.pop());..
[Java연습] 괄호 짝 맞추기 import java.util.Stack; //20240220 괄호 짝이 맞는지 검사 public class stackPractice03 { public static void checkParenthesis(String str){ Stack stack = new Stack(); boolean checkFlag = true; for (String s : str.split("")){ if(s.equals("(")){ stack.push(s); }else{ if(stack.isEmpty()){ checkFlag = false; break; }else { stack.pop(); } } } if (checkFlag && stack.isEmpty()){ System.out.println("PASS!"); }else ..
[Java연습] 스택 문자열 뒤집기 /* 20240220 문자열 뒤집기 */ import java.util.Stack; public class stackPractice02 { public static String reverseString(String str){ Stack stack = new Stack(); String result = ""; for (String s : str.split("")){ stack.push(s); } while (!stack.isEmpty()){ result = result + stack.pop(); } return result; } public static void main(String[] args){ //test code String result = reverseString("Hello"); System.o..
[Java연습] 배열을 이용한 기본 스택 구현 /* 20240220 배열을 이용한 기본 스택 구현 */ class MyStack{ int[] arr; int top = -1; MyStack(int size){ //생성자 arr = new int[size]; } public boolean isEmpty(){ if(this.top == -1){ return true; }else { return false; } } public boolean isFull(){ if(this.top == this.arr.length -1){ return true; }else { return false; } } public void push(int data){ if(this.isFull()){ System.out.println("Stack is full!"); return; ..