일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 스프링
- baekjoon
- java
- 코틀린
- 알고리즘
- 프로그래머스
- 모던자바
- 네트워크
- kotlin
- TDD
- lambda
- LEVEL2
- DP
- 자바
- 운영체제
- Java8
- programmers
- algorithm
- OS
- 프로젝트
- 백트래킹
- backtracking
- 그래프
- back-end
- Brute-force
- 자료구조
- BFS
- 백준
- DFS
- Spring
- Today
- Total
목록알고리즘 (63)
요깨비's LAB
class Solution { fun solution(id_list: Array, report: Array, k: Int): IntArray { var answer = mutableListOf() val userMap = mutableMapOf() for(id in id_list) { userMap.putIfAbsent(id, User(id, 0, 0)) } val reportSet = mutableSetOf() for (element in report) { reportSet.add(element) } for (element in reportSet) { val fromTo = element.split(" ") val from = fromTo[0] val to = fromTo[1] val user = us..
class Solution { public String[] solution(int n, int[] arr1, int[] arr2) { String[] answer; String[] result = new String[n]; for(int i=0;i
import java.util.HashMap; import java.util.Map; class Solution { public int[] solution(int[] lottos, int[] win_nums) { int[] answer = new int[2]; Map rankMap = new HashMap(); rankMap.put(6,1); rankMap.put(5,2); rankMap.put(4,3); rankMap.put(3,4); rankMap.put(2,5); rankMap.put(1,6); int maxScore = getMaxScore(lottos, win_nums); int minScore = getMinScore(lottos, win_nums); answer[0] = rankMap.get..
import java.util.Scanner; public class Main { static boolean isGet = false; public static void main(String[] args) { Scanner scr = new Scanner(System.in); long A = scr.nextInt(); long B = scr.nextInt(); multiplyTwo(A, B, 1); if (isGet) { return; } appendOne(A, B, 1); if (isGet) { return; } System.out.println(-1); } public static void multiplyTwo(long value, long B, long count) { if (isGet || val..
1. 문자열 구분이 필요 "{" "," "}" 별로 수행해야하는 로직을 정의해서 구현 2. 주어지는 값이 중복이 없고, 길이도 제각각 (a3, a2, a4, a1) 요런식으로 다르게 주어지므로 List 선택 3. 하지만 List를 listSize별로 정렬할건데 성능 개선을 위해 연산을 하면서 listSize를 미리 증가 연산을 해서 리스트 정렬하기 위해 리스트 전체를 카운트하지 않도록 구현 4. 이를 위해 List, 리스트크기를 담는 Element 클래스를 작성 5. 이후는 코드 내용과 그대로 진행 import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; class Solution { ..
1. 우선순위 3가지 3! 연산으로 생성 2. 생성된 우선순위 기반으로 중위표현식을 후위표현식으로 생성 3. 생성된 후위표현식을 계산 4. 최대값과 비교 및 업데이트 요것만 반복해주면 됩니다. 근데 계속 틀렸다고해서 시간 엄청허비했는데 알고보니 Map 컬렉션에 저장해놓고 다음 연산을 위해서 이전 값 삭제 연산을 안해서 났던 에러... 참 아직도 멀었네요 import java.util.*; class Solution { public long solution(String expression) { long answer = 0; char[] operators = {'+', '-', '*'}; char[] carr = expression.toCharArray(); List exp = new ArrayList();..
엄청 틀렸고, 결국 다른분들의 설명을 참조하여 풀었습니다. 이 과정에서 해결한 부분들입니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { static int N; public static void main(String[] args) { YoggaebReader input = new YoggaebReader(); StringBuilder sb = new StringBuilder(); N = input.nextInt(); int[] arr = new..
https://www.hackerrank.com/challenges/two-characters/problem https://www.hackerrank.com/challenges/two-characters/problem www.hackerrank.com 1. 문자열을 한번 순회하여 사용된 Alphabet을 구한다.(Set 사용) 2. set의 알파벳을 배열에 담는다. 3. 알파벳 배열에서 2가지 알파벳 조합을 뽑은다음 문자열을 순회 3 - 1. Stack에 조합에 포함된 문자열을 넣는데, 만약 똑같은 문자가 연속으로 들어와있을경우 조건에 불일치하므로 isComplete false로 설정한 뒤 break 3 - 2. 문자열 끝까지 잘 담겼다면 이전 성공값의 문자열 길이와 비교하여 값 업데이트 혹은 그대로 두..