본문 바로가기

자바 알고리즘5

BOJ 25918번(북극곰은 괄호를 찢어) 난이도 실버 I 풀이 자바 풀이 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.lang.Math; public class Main{ public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); String arr = br.readLine(); int result = 0; int.. 2023. 4. 23.
프로그래머스 가장 큰 수(자바) 난이도 LV2 풀이 숫자를 문자로 바꾸고 내림차순 정렬한다음 조합하면 된다. import java.util.*; class Solution { public String solution(int[] numbers) { String[] strNums = new String[numbers.length]; for(int i=0; i 2023. 3. 15.
프로그래머스 기지국 설치(자바) 난이도 LV3 풀이 import java.util.*; class Solution { public int solution(int n, int[] stations, int w) { int answer = 0; Queue sq = new LinkedList(); for(int s:stations) sq.offer(s); int position = 1; while(position 2023. 3. 14.
BOJ 2671번 - 잠수함식별 난이도 골드 V 풀이 정규식을 사용하면 좀더 쉽게 풀 수 있는 문제였다. 검색을 해보니까 DFA(Deterministic Finite Automata)라는 개념을 활용해서 풀 수 있는거 같긴한데 너무 어려운거 같아서 정규식을 사용해서 해결하는 것이 간단할 것이라고 생각했다. 정규 표현식 정리 Groups and ranges [ ] : 괄호안의 어떤 문자든 -> [ABC] : A 또는 B 또는 C ( ) : 그룹 | : 또는 Quantifiers ? : 없거나 있거나 -> BA? : B or BA * : 없거나 있거나 많거나 + : 하나 또는 많이 {n} : n번 반복 {min,} : 최소 {min,max} : 최소 그리고 최대 Character classes . : 어떤 글자 re.compile : 정규.. 2023. 2. 12.
BOJ 13417번 - 카드 문자열 난이도 실버 III 풀이 전형적인 그리디 유형의 문제였다. 일단 배열을 하나 만들어놓고 첫번째 원소를 넣은 다음 반복문을 돌려 배열의 첫번째 인덱스 값과 나머지 원소들을 비교해서 사전순으로 느리면 뒤에 넣고 사전순으로 빠르면 앞에 넣는 방식으로 구현했다. 파이썬 코드 import sys input=sys.stdin.readline T=int(input()) for _ in range(T): N=int(input()) answer=[] card=input().rstrip().split(" ") answer.append(card[0]) for i in range(1,len(card)): if answer[0] 2023. 2. 12.