일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- TypeScript
- 우아한형제들
- JPA
- 탐색알고리즘
- JavaScript
- 알고리즘
- 단위테스트
- Vue.js
- DFS
- BFS
- Algorithm
- 웹프로그래밍
- Spring
- BOJ
- 데이터베이스
- Vue
- codeground
- Database
- 연습문제
- springboot
- 백준
- SQL
- framework
- mobx
- BAEKJOON
- Java
- 프레임워크
- 우아한테크캠프
- Backtracking
- react
- Today
- Total
목록Java (25)
설모의 기록
이 문제는 정우가 각 과목에서 얻을 수 있는 시험 점수가 입력되고, 정우가 최고 점수를 맡도록 입력된 K만큼 과목을 고르는 문제입니다. 간단한 문제여서 배열을 정렬한 다음, 배열의 끝에서부터 K개만큼 Answer에 더해 출력했습니다. 간단한 문제이기 때문에 설명도 간단하게 하고 넘어가겠습니다.
이 문제는 마지막 라운드의 사람들의 점수를 알려줬을 때, 최종 우승할 가능성이 있는 사람들의 수를 구하는 문제입니다. 점수는 참가자가 N명이라고 했을 때, 1등부터 차례대로 N점, (N -1) 점, (N - 2)점, ... , 1점 을 부여합니다. 저는 우선 입력받은 사람들의 점수를 Arrays.sort() 함수를 이용해 정렬했습니다. 그 배열을 arr이라고 하겠습니다. arr[i] 아이가 1등을 하려면 arr[i + 1] ~ arr[N - 1] 사람들이 arr[i] 사람보다 낮은 점수를 받아야 합니다. 따라서 가장 이상적인 방법은 그 다음 사람부터 N -1, N - 2, ... , 1 점을 받으면 가능성이 있을거예요. 그 앞(arr[0] ~ arr[i - 1]) 은 생각안해도 되는 이유는 어차피 그 앞..
이 문제는 주어진 숫자중에서 홀수번 나타나는 숫자들의 XOR 연산결과를 출력하라는 문제입니다. 저도 풀다가 함정에 빠져서 배열을 만들고, 배열의 인덱스를 숫자라 생각하고 숫자가 나타나는 횟수를 배열에 저장하는 식으로 풀려고 했더니 메모리를 초과했다는 런타임 에러가 발생했습니다. '대체 배열을 안 쓰고 이걸 어떻게 풀지..?' 라는 생각에 빠져있었는데 이게 바로 XOR 연산의 함정입니다. 기본적으로 XOR 연산은 두 수 a, b가 다르면 0이 됩니다. 따라서 b^b를 하면 자동으로 상쇄되기 때문에 홀수인지 짝수인지 나타난 횟수를 신경쓰지 않고 XOR연산에 모두 추가하면 되는 간단한 문제였습니다. XOR 연산의 기본 개념만 알고 있었어도 빠르게 풀고 넘길 문제였습니다T^T
팰린드롬(Palindrome)이란 '기러기' 와 같이 앞으로 읽으나 뒤로 읽으나 똑같은 문자열을 말합니다. 이 문제는 주어진 문자열이 팰린드롬인지 아닌지를 검사하는 간단한 문제입니다. 저는 반복문을 이용해 처음부터 가운데까지 검사하는 코드를 구현했습니다.
이 문제는 주어진 NxM 배열에서 (0, 0) 에서 (N - 1, M - 1) 칸까지 가는 최소한의 칸의 수를 구하는 문제입니다. 문제에서는 (1, 1) 에서 (N, M) 으로 가는 최소한의 칸의 수를 구하라고 했지만, 인덱스의 개념상 (0, 0) 에서 (N - 1, M - 1) 로 가는 것이 이해하기 편해서 아래의 문제는 이것을 바탕으로 풀이한 알고리즘입니다. 이 문제는 BFS 문제입니다. 처음 (0, 0) 을 큐에 넣고 while 문 안에서 큐에 있는 노드들의 다음 목적지를 다시 큐에 넣고 반복하면 됩니다. 코드는 아래와 같습니다.