일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Spring MVC 구성요소
- 코드스테이츠 백엔드
- 자바
- 버블정렬
- 코드스테이츠
- 재귀와반복문
- 스택
- 프로그래머스
- java
- String.valueOf()
- 11659
- 싱글톤패턴
- 구간합구하기
- 인텔리제이
- MySQL
- 백준 11659
- List.of
- Spring MVC 동작원리
- 알고리즘
- 투포인터알고리즘
- Spring Web MVC
- 백준
- GCP
- 재귀함수
- 클라우드에서 도커 실행하기
- OOP
- 성능테스트툴
- 코딩테스트
- vm인스턴스생성
- Array.asList
- Today
- Total
목록글 전체 보기 (242)
순간을 기록으로

안녕하세요 루미너스입니다! 오늘은 프로그래머스 고득점 Kit 해시 문제를 풀어봤습니다. 문제 https://programmers.co.kr/learn/courses/30/lessons/42576# 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 첫 번째 풀이 - List 이용, 시간초과 import java.util.*; class Solution { public String solution(String[] participant, String[] completion) { // 참가자 명단을..

상황 이미 원격저장소로 올라간 1개의 Commit을 되돌리고 싶었다. 왜냐면 오리지널 원격저장소에 PR을 한 커밋만 보내고 싶은데 한 커밋만 선택할 수 없었다. 그래서 이미 올라간 2개 커밋 중 한 커밋을 로컬로 되돌리고 싶었다. 사실 1장 commit하고 PR을 날렸고, 그 이후에 2장을 커밋했다. 그리고 2장 PR을 날리려고 해보니 안되었다. 그래서 확인해보니깐 첫 PR에 두 개의 커밋이 모두 포함되어있었다. 일단 1장씩 PR을 날리기로 약속했어서 잘못된 PR을 Closed했다. 해결 방법1 - git reset: 로컬에서 커밋을 되돌린 후 강제 푸시하기(비추천) Local에서 `git reset` 명령어를 사용하면 된다. $git reset --hard HEAD~3 위 명령어를 사용하고 git pu..

안녕하세요 luminous13입니다. 이번에는 백준 수정렬하기1 2750번 문제를 풀어보도록 하겠습니다. 문제 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 데이터를 오름차순으로 정렬하는 문제입니다. 사실 정렬을 Arrays.sort()를 이용하여 쉽게 정렬할 수 있지만 이번에는 직접 정렬을 구현하면서 문제를 풀어보도록 하겠습니다. 여러 정렬 알고리즘 중 하나를 선택해야 합니다. 데이터 크기를 보니 최대 1,000이 올 수 있습니다. 데이터 크기가 크..

분석 * 이번 문제는 수 나열에서 부분 합을 여러번 구하는 문제다. * 배열의 구간 합을 구해야 될때에는 합 배열을 이용하면 시간복잡도를 O(n)에서 On(1)로 줄일 수 있다. * 합 배열 공식:S[i] = S[i-1] + arr[i] * [i,j] 구간 합 공식: S[j] - S[i-1] * 배열의 사이즈를 1 추가하여 인덱스가 1이 첫 번째 원소로 설정해야 합배열 첫 번째 원소도 규칙있게 구할 수 있다. * * 이번 문제에서 만약 합 배열을 이용하지 않고 이중 for문을 사용하면 수의 갯수*횟수이 연산횟수가 된다. * 100,000*100,000 = 10,000,000,000 이다. 즉 100억번 연산을 하게되고 시간은 100초가 소요될것이다. * 따라서 합배열을 사용해야하는 문제다. 수도코드 * ..

안녕하세요 luminous13입니다. 오늘은 toString()과 valueOf()의 차이점에 대해 알아보겠습니다. 코드를 짜다보면 다른 타입에서 문자열로 형변환해야될 상황이 있습니다. 예를들어 int에서 문자열로 형변환을 하고 싶을 때 우리는 아래의 코드와 같이 2가지 방법을 사용할 수 있습니다. public static void main(String[] args) { int num = 123; String str1 = Integer.toString(num); String str2 = String.valueOf(num); System.out.println("String() 이용: " + str1); // "123" System.out.println("valueOf() 이용: " + str2);// "1..

알고리즘의 성능 좋은 알고리즘이란 무엇일까? 상황에 따라 좋은 알고리즘에 대한 정의가 달라지겠지만 일반적으로 좋은 알고리즘이란 성능이 좋은 알고리즘이라고 할 수 있다. 그렇다면 알고리즘의 성능을 평가할 수 있는 지표는 무엇이 있을까? 알고리즘 성능을 평가할 수 있는 지표는 공간과 시간이 있다. 이 알고리즘이 수행하는데 얼마나 적은 메모리 공간을 차지하는가? - 공간 복잡도 이 알고리즘이 수행하는데 얼마나 빠른가? - 시간 복잡도 현대 기술이 발전과 함께 메모리 성능 발전도 이뤄지게 되었고, 따라서 상대적으로 성능 평가 지표 중 하나인 공간복잡도에 대한 중요성이 낮아졌다. 따라서 시간 복잡도(=얼마나 빠른가?)가 더 중요한 지표가 되었다. 그렇다면 알고리즘이 얼마나 빠른지, 즉 시간복잡도는 어떻게 알 수 ..

안녕하세요 luminous13입니다. 오늘은 parseInt()와 valueOf()의 차이점에 대해 알아보겠습니다. 문자열을 숫자로 형변환을 할 때 우리는 2가지 방법을 사용할 수 있습니다.예시를 들면 아래와 같습니다. String str = "123"; int num1 = Integer.parseInt(str); int num2 = Integer.valueOf(str); System.out.println("num1 = " + num1); // 123 System.out.println("num2 = " + num2); // 123 두 변환값 모두 출력값은 동일합니다. 그럼 무슨 차이가 있을까요? 1.parseInt(String s) - 반환형이 기본 자료형(primitive type) public sta..

상황 문자열 계산기를 만드는 프로젝트에서 기능 구현까지 끝난 상황. 문제 기능은 동작하지만 main 메서드에 모든 구현 코드가 들어가 있다. 그래서 큰 흐름이 한 눈에 안들어와서 불편했다. 코드의 기능별로 메서드로 뽑아내면 가독성과 유지보수에 편리할 거 같아서 리팩토링을 해야겠다. 아래의 코드는 입력과 출력 기능을 하는 코드까지만 메서드로 추출했고 계산 기능은 아직 메서드로 뽑아내지 못했다. 계산 기능이 아무래도 더 코드가 많아 여전히 main 메서드가 한 눈에 안들어온다. public static void main(String[] args) { String[] temp = input(); int result = Integer.parseInt(temp[0]); for (int i=1; i