일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 성능테스트툴
- OOP
- vm인스턴스생성
- 백준
- String.valueOf()
- 스택
- 코드스테이츠
- 코딩테스트
- Spring MVC 동작원리
- 버블정렬
- Spring MVC 구성요소
- 재귀와반복문
- 구간합구하기
- 11659
- 인텔리제이
- 클라우드에서 도커 실행하기
- 자바
- Array.asList
- 재귀함수
- 백준 11659
- MySQL
- List.of
- java
- 코드스테이츠 백엔드
- Spring Web MVC
- 프로그래머스
- 투포인터알고리즘
- GCP
- 알고리즘
- 싱글톤패턴
- Today
- Total
목록글 전체 보기 (242)
순간을 기록으로
문제 https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 주의할 점 거리값을 구하기 위해서는 키패드의 위치를 2차원 배열과 인덱스를 사용해야된다. 그리고 키패드가 0일 때 처리해주는 것도 필요하다. 코드 public class Solution { public String solution(int[] num..

문제 Queue 자료구조의 특성을 이용하여 문제를 풀 수 있다. 주의할 점 기본적인 큐 문제다. 코드 package 인프런.재귀와트리와그래프.공주구하기.방법1; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Main { public int solution(int n, int k) { int answer=0; Queue q = new LinkedList(); // 큐 선언 for (int i=1; i

문제 우선 연속된 원소와 관련된 문제라서 투포인터와 슬라이딩을 문제임을 알 수 있다. 더하는 자연수의 갯수가 변할 수 있으므로 투포인터 알고리즘을 이용해서 푸는 문제이다. 주의할점 다른 문제와 다르게 배열이 주어지지 않았다. 따라서 배열을 선언해야되는데 길이를 정해야 한다. 예를들어 N=15라 가정한다. 그럼 첫 원소값이 7이면 7+8로 가능한 경우가 있지만 8이 되면 가능한 경우가 사라지게 된다. 따라서 배열의 길이는 N/2+1로 설정해야한다. 그리고 투포인터 알고리즘은 구조적으로 패턴이 정해져 있다. 따라서 패턴을 기억하도록 하자. 코드 package 인프런.투포인터와슬라이딩윈도우.연속된자연수합.방법2; import java.util.Scanner; /* * 연속 --> 투포인터 or 슬라이딩 -->..
문제 https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 문자열 문제. 그 중에서도 정규식을 사용할 줄 아는지에 관한 문제다. 풀이 String은 str.replace()와 str.replaceAll()을 제공한다. replace()는 문자열 이용하여 문자열을 수정할 수 있다. 반면에 replaceAll()은 정규식을 이용해서 문자열을 수정할 수 있다. 정규식을 다양한 상황에서 문자열을 치환할 수 있다. ..

1.File --> Settings 누르기(Ctrl + Alt + S) 2.상단 좌측에 Annotation 검색하기 3.Enable annotation processing 체크 후 적용하기

문제 풀이 괄호가 등장하는 걸로보아 Stack을 이용한 문제로 예상하고 문제를 이해하면 stack을 사용하는게 확실해 진다. stack의 괄호문제는 대부분 닫는 괄호 ')'일 때 액션을 취해주면 된다. 여기서는 ')'일 때 액션을 2가지로 나눌 수 있다. 첫 번째로 ')' 바로 앞이 '('이 나왔다면 레이저를 의미하므로 stack에 넣었던 것을 pop해주고 갯수를 더해준다. 두 번째로 ')'는 막대기 끝 부분이므로 스택에 쌓인 막대기 하나를 제거하고 갯수를 1더해주면 된다. 코드 import java.util.Scanner; import java.util.Stack; public class Main { public int solution(String str) { int answer = 0; Stack s..

문제 풀이 카드 3개의 합을 중에서 K번째로 높은 값을 구해야하는 문제이다. 우선 여러 카드 중에서 3개의 카드를 뽑는 건 3중 For문을 사용해서 할 수 있다. 그리고 그렇게 3개의 카드를 더한 값을 저장해야한다. 하지만 문제가 있는데 이렇게 뽑은 값들에 중복이 있다. 따라서 중복을 제거하기 위해 Set 자료구조를 사용할 것이다. 그리고 k번째로 높은 합을 구할거니깐 TreeSet을 사용한다. TreeSet은 안의 원소가 오름차순으로 정렬되어있다. 코드 package 인프런.해시맵과트리셋.K번째큰수.방법1; import java.util.Collections; import java.util.Scanner; import java.util.TreeSet; public class Main { private ..
문제 유형 연속된 값과 관련되느 투포인터 알고리즘 문제 풀이 방법 1.이중 FOR문 시간복잡도 O(N^2) 데이터의 갯수가 늘어날 수록 시간이 엄청 걸린다. 2.투포인터 알고리즘 O(N^2)를 O(N)으로 풀 수 있도록 해준다. 코드 import java.util.Scanner; public class Main { public int solution(int N, int M, int[] arr) { int count = 0; int sum = 0; int start = 0; for (int end=0; end =M) { sum -= arr[start++]; if (sum == M) coun..