일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- mysql hy000 에러
- 프로그래머스 자바
- append
- Stack
- 백준 1647번 도시 분할 계획 - java
- 코틀린기초
- Java
- 백준 2473번 세 용액 - java
- 백준 3190번
- ac 5430번
- StringTokenizer
- 프로그래머스
- 백준 1197번 최소 스패닝 트리 - java
- 백준 14938번 서강그라운드
- 프로그래머스 java
- 18111번 마인크래프트 - java 구현
- HashMap
- toUpperCase
- map
- 백준 1806번 부분합 java
- 최소 힙 1927
- hash
- 백준 1541
- dp
- replace()
- HashSet
- 백준 2467번 용액 자바 - 이분탐색
- kotlin
- 백준 1043번 거짓말 - java 분리 집합
- StringBuilder
- Today
- Total
목록알고리즘 (138)
말하는 컴공감자의 텃밭
일단 문제를 읽어보면 점수가 담긴 배열과, 명예의 전당 k가 주어진다. k는 금 은 동메달처럼 점수가 높은 사람들의 숫자이다. result에는 그 중 최솟값을 넣어서 일차별로 출력하면 되는 문제이다. 간단하게 느껴서 작성했다. HTML 삽입 미리보기할 수 없는 소스 이게 웬걸.. 포문에 정렬까지 들어가니 런타임에러가 불가피했다. Arrays.sort()는 내부적으로 DualPivotQuicksort.sort()를 호출해서 사용하므로 퀵 정렬을 따라간다. 퀵 정렬의 시간 복잡도는 최선의 경우에는 O(nlogn), 최악의 경우에는 O(n^2)이다. 어떻게 하면 런타임 에러를 피할까 고민했는데, 방법을 못 찾았고 다른 알고리즘을 찾아보게 되었다. HTML 삽입 미리보기할 수 없는 소스 리스트 정렬에 사용되는 ..
함정이 있던 문제라 초기 입출력은 금방 맞았는데 테스트 케이스 5, 12, 24 등이 걸려서 20분은 잡아먹은거 같다. 문제을 읽으면 학생 수가 주어지고 체육복을 잃어버린 사람 배열과, 여분이 있는 사람의 배열이 주어진다. 체육복은 사이즈 이슈로 본인 또는 앞뒤 체격에게만 빌려줄 수 있고, 최대한 많은 인원이 체육수업을 할 수 있게 여분의 체육복을 나눠주어야 한다. 또한 여분이 있는 사람도 도둑 맞을 수 있는데, 이 경우 본인은 여분의 체육복을 입기 때문에 빌려주지 않는다. HTML 삽입 미리보기할 수 없는 소스 이제 1400점이네오. 하루 한두개만 푸니까 진도가 안나가는 느낌.. 179문제중입니다.
덧칠하자 덧칠하자 직찍찍.. 영역이 주어지고, 색칠이 덜된 section[]과 롤러의 크기가 주어집니다. 비어진 곳을 롤러로 칠하는 방법 중 최소의 방법을 구하는 알고리즘 문제입니당둥둥다라둥둥 먼저 배열을 구현하려했고, Arrays.fill 메서드를 통해 1을 먼저 넣어주었습니다. 빈곳은 0 값을 넣어 확인하기로 했습니다. 빈곳을 발견하면, 그 이후 단계는 모두 롤러 범위기에 cnt값을 올려 cnt가 롤러 크기값과 같다면 1번 칠하는걸로 작성했습니다. 또한 롤러 크기만큼 영역이 남지 않았어도 칠해야 하기때문에 마지막 부분에 cnt가 0보다 크다면 횟수를 1번 증가시켜 주었습니다. HTML 삽입 미리보기할 수 없는 소스
주사위의 같은 숫자의 개수에 따라서 점수가 달라진다. 네 주사위에서 나온 숫자가 모두 p로 같다면 1111 × p점을 얻습니다. 세 주사위에서 나온 숫자가 p로 같고 나머지 다른 주사위에서 나온 숫자가 q(p ≠ q)라면 (10 × p + q)2 점을 얻습니다. 주사위가 두 개씩 같은 값이 나오고, 나온 숫자를 각각 p, q(p ≠ q)라고 한다면 (p + q) × |p - q|점을 얻습니다. 어느 두 주사위에서 나온 숫자가 p로 같고 나머지 두 주사위에서 나온 숫자가 각각 p와 다른 q, r(q ≠ r)이라면 q × r점을 얻습니다. 네 주사위에 적힌 숫자가 모두 다르다면 나온 숫자 중 가장 작은 숫자 만큼의 점수를 얻습니다. 세 주사위의 경우 제곱이 있어서 Math.pow()를 사용했다. 예시코드 H..
배열 크기 조절을 위해서 Arrays.copyOfRange로 2와2사이 배열을 복사해서 할당해주는 문제였네오 HTML 삽입 미리보기할 수 없는 소스
일단 제 mbti는 enfp입니다 껄껄 먼저 성격유형은 4종류로 각각 2개씩 반대되는 성향이 존재합니다. 선택지 (1~7)와, 검사지 질문에 따라 점수를 받는 성향이 달라집니다. 매우 비동의 (1) 을 선택하는 경우와 매우 동의 (7)을 선택하는 경우 역시 3점입니다. 점수를 받는 유형은 다르지만요 예를 들어 AN이 질문이고, 5의 점수를 준다면 N이 1점의 점수를 얻게 됩니다. 반대로 NA이 질문이고 2의 점수라면 N이 2점을 얻게 됩니다. 결국 점수의 숫자에 따라서 앞에 성향에 점수를 주거나 뒤에 점수를 주게 되는 방식으로 문제를 접근했습니다. 점수는 모든 항목에서 4를 빼서 절댓값을 하면 되겠죠. 앞과 뒤 구별은 survey[i].charAt(0) 와 (1)로 구분했으며, indexOf()를 통해서..
2차원 배열이 정사각형으로 주어지고, moves에 x좌표로 크레인을 떨궈 인형 뽑기를 한다. 이후 담아두는데 같은 인형이면 터뜨리면서 값을 +2 해주는 문제이다. 터뜨려지는 수만 구하면 되는 문제라 쉽게 생각해봤다. 먼저 위에서 인형이 있는 위치까지 내려와야 하므로 board[i][moves[j]-1] 가 0이 아니라면 인형이 있는 것으로 판단했다. 스택을 선언하고 기존 0을 넣은 후 비교해서 같다면 pop 하고, answer +2를 해주었다. HTML 삽입 미리보기할 수 없는 소스 스택 구조를 2학년,,? 공부한 이후로 코드로는 처음 사용해서 간단히 정리하려 한다. - 스택 후입선출 의 구조로 LIFO( Last In First Out ) 구조이다. 맨 위에서만 제거나 추가 연산이 이뤄진다. - 메서드..
갱장히 간단한 문제인데, 음수의 경우를 배제해서 해결이 안됐었다. 인풋값 제한을보고 max를 최하로 놓고 이중포문으로 비교했는데 풀고나니 걍 정렬해서 큰놈 둘, 작은 놈 둘 곱해서 비교하면 됐었다.. HTML 삽입 미리보기할 수 없는 소스
프로그래머스 달리기 경주 callings에 담기면 해당 이름을 가진 선수가 추월했다는 뜻이다. 4등인 "kai"가 불렸다면 3등으로 제쳤다는 말이다. 그럼 calling에 불린 선수와 앞에 있는 선수를 스위칭하면 되는 문제이다. Map선언으로 선수명과 등수를 Key와 Value로 넣어줬다. HTML 삽입 미리보기할 수 없는 소스 진작에 코드 자체에 주석 넣을걸~
Map 쓰는 문제를 찾다가 줍게된 문제이다. name 갯수와 같은 yearning에 점수가 담겨있고, 해당 이름순번에 맞는 점수가 담겨있다. photo에는 이름이 2차원 배열로 담겨있고, 이름을 점수로 변환하여 리턴하면 되는 문제이다. for문 반복으로 풀수도 있지만 시간복잡도가 n^3이라 map을 사용하기로 했다. 이름 중복이 없어서 Hash는 굳이 안써도 되었지만 사용했다. import java.util.*; class Solution { public int[] solution(String[] name, int[] yearning, String[][] photo) { int[] answer = new int[photo.length]; HashMap map = new HashMap(); // HashM..