본문 바로가기

728x90
반응형

개발일기

(94)
구현 알고리즘(백준 10808 알파벳 개수) JAVA 해당 문제는 입력받은 단어의 각 알파벳의 갯수를 a~z 까지 출력하는 아주 간단한 문제입니다.기본적엔 메커니즘은 0~25 index를 갖고 있는 배열을 만든후 0부터 25까지 차례 대로 a~z라고 생각하고해당 단어에 알파벳 index의 값을 ++만 해주면 됩니다.입력받은 알파벳 - 'a'를 하면 각 index 값이 나옵니다 예를 들어 'a' - 'a' = 0 , 'b' - 'a' = 1이 됩니다. import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;public class Main { public static void main(String[] a..
스택 알고리즘(백준 17413 - 단어뒤집기2) JAVA 해당문제는 백준 실버3 난이도에 문제로 기본 메커니즘은 단어뒤집기1이랑 비슷하지만,"" 라는 조건이 더해져 있습니다. 기본적으로 단어들의 스펠링의 위치를 바꾸되 "" 안에 있는 문자는 뒤집지 않고 출력해야 합니다. 단어뒤집기1에서는 " "를 기준으로 split 해서 각 배열에 있는 단어를 반대로 출력하는 방식을 사용하였지만, 요번에는 스택을 사용하였습니다.기본 메커니즘은 간단합니다. 1, 입력받은 문자열의 스펠링을 하나씩 스택에 push해준다.2, 만약에 입력받은 문자열에서 " "가 존재한다면 이제껏 push 해줬던 값들을 pop 해준다.3, 만약에 입력받은 문자열에서 ""까지의 모든 범위를 출력해준다. 얘네들은 스택에 push 안해주고 바로 출력한다. 정도입니다. public class Main { ..
백준 9012 - 괄호 JAVA 해당문제는 주어진 문자열이 전부 서로 짝이맞는 "()" 인지 아닌지출력하는 문제입니다. 저는 해당 문제를 간단하게 주어진 문자열에서 "()" replace를 하여 값이 남아 있다면 NO를 남아있는 값이 없다면 YES를 출력하도록 구현하였습니다. import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Pr..
구현 알고리즘(백준 9093 - 단어 뒤집기) JAVA 해당 문제는 주어진 문장의 단어들의 순서를 서로 뒤집는 문제입니다.java가 제공하는 함수를 이용하여 쉽게 풀순 있지만, 알고리즘 학습을 위하여 반복문을 이용하여 직접 뒤바꾸는 로직을 구현하였습니다. import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); PrintWriter pw = new PrintW..
정렬(백준 11650 - 좌표 정렬)JAVA 해당문제는 2차원 배열로 입력되는 좌표를 앞자리를 오름차순으로 정렬하는 문제입니다.하지만, 조건이 하나가 더있는데 만약에 앞자리가 동일한 숫자가 있다면, 뒤의 숫자가 작은 순으로 정렬해야 합니다.풀이는 간단합니다. Arrays.sort를 이용하여 풀었습니다. import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.util.*;public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamRe..
브루트포스 알고리즘(백준 1436 - 영화감독 숌) JAVA 해당문제는 666부터 1씩 값을 증가하여 N번째의 666이 들어간 값을 출력하는 것입니다.예를 들면 N이 2라고 한다면 666,1666 , 2666... 이런식으로 666이 들어간 2번째의 값 1666을 출력하면 됩니다.단순히 666부터 1씩 증가 시키면서 해당 값의 666이 들어가면 count를 1씩 증가시켜 count가 N의 값이랑 동일하게 된다면그때 마지막 num을 출력하면 되겠습니다. import java.util.Scanner;public class Main { static int max = 0; public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); ..
브루트포스 알고리즘(백준 2231 - 분해합) JAVA 해당 문제는 1부터 N까지 각 숫자 + 그 숫자의 자릿수를 반복하면 풀수있습니다. import java.util.Scanner;public class Main { static int max = 0; public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int result = 0; for(int i=1; i 코드를 보면 1부터 N 까지 반복문을 돌리면서 현재 i의 값을 계속 더해주며 결국 현재 i의 값이0이 되기 전까지 sum을 해주고 있습니다.number%10을 통해 각 자릿수를 더해주고 있..
구현 문제(백준 11382 꼬마정민) JAVA 해당 문제는 백준 브론즈5에 해당하는 아주 간단한 덧셈 문제입니다. A,B,C를 입력받아서 더해준 값을 출력하면 됩니다.하지만 , C의 값이 10의12승 즉, 1,000,000,000,000의 값이 들어올수 있기 때문에 Integer 대신 Long을 사용하여 문제를 풀어줘야 합니다.  저는 Scanner와 System.out.print 대신 BufferedReader , PrintWriter을 사용하였습니다. import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintWriter;import java.util.StringTokenizer;public class Main { public static void ma..

728x90
반응형