일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- visited
- 단체사진 찍기
- 정렬
- Java
- 유클리드 거리
- 수식트리
- LinkedList
- 알고리즘
- 연결리스트
- 양방향 연결 리스트
- 그리디
- 탐욕법
- java 정규표현식
- 빅-오
- 큐
- 약수의 총 합
- 자료구조
- space complexity
- 보간 탐색
- android
- level2
- 알고리즘 성능분석
- 맨하탄 거리
- 순차 리스트
- 유클리디안 거리
- interpolation search
- 프로그래머스
- 순열
- list
- 스택
- Today
- Total
목록0x20. 알고리즘/0x22. 프로그래머스 (7)
개발자로 살아남기
오른쪽으로 가는것을 기준으로 잡고 풀었다. 좌, 우 이동만 가지고 얘기하자면, 현재 위치를 기준으로 왼쪽/오른쪽 거리를 계산했을 때, 한 번이라도 왼쪽 거리가 짧을 경우 name의 끝에서부터 빼면서 계산했다. 다른 사람의 풀이를 보면 엄청 쉽게 구현하던데 신기하다... 탐욕법은 매 순간마다 최적의 값을 찾는다. 탐욕법은 탐욕스러운 선택 조건과 최적 부분 구조 조건을 가지는 특징이 있는데, 탐욕스러운 선택 조건은 앞에서 내가 선택한 것이 이후의 선택에 어떠한 영향을 미치지 않는다는 조건이고 최적 부분 구조 조건은 문제에 대한 최적해가 부분 문제에 대해서도 최적해여야 한다는 특징이 있다. 이 문제에서는 인덱스 0 위치에서 왼쪽으로 갈 경우 문자열의 끝에 갈 수 있지만 문자열의 끝에서 오른쪽으로 갈 경우 인덱..

프로그래머스 Level 2의 전화번호 목록을 풀었다. Hash를 이용하라는데, 아무리봐도 안될 것 같아 그냥 이중 for문으로 작성했다. import java.util.*; class Solution { public boolean solution(String[] phone_book) { Arrays.sort(phone_book); for(int i=0; i

이 문제를 푸는데 시간이 좀 걸렸다. 문제는 위와 같은데 단순히 10진수를 124 나라에서 사용하는 숫자로 바꾸는 문제이다. 1,2,4 세 개만 사용한다 했으니 10진수를 3진법으로 변환해봤다. 10진법 3진법 10진법 3진법 1 1 11 102 2 2 12 110 3 10 13 111 4 11 14 112 5 12 15 120 6 20 16 121 7 21 17 122 8 22 18 200 9 100 19 201 10 101 20 202 그리고 3진법과 124나라의 숫자를 비교해봤다. 3진법 124나라 3진법 124나라 1 1 102 42 2 2 110 44 10 4 111 111 11 11 112 112 12 12 120 114 20 14 121 121 21 21 122 122 22 22 200 12..

해당 문제를 푸는데 좀 많은 시간이 소요되었다. 먼저 문제를 살펴보면 아래와 같다. 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm × 1cm의 정사각형으로 잘라 사용할 예정이었는데, 누군가가 이 종이를 대각선 꼭지점 2개를 잇는 방향으로 잘라 놓았습니다. 그러므로 현재 직사각형 종이는 크기가 같은 직각삼각형 2개로 나누어진 상태입니다. 새로운 종이를 구할 수 없는 상태이기 때문에, 이 종이에서 원래 종이의 가로, 세로 방향과 평행하게 1cm × 1cm로 잘라 사용할 수 있는 만큼만 사용하기로 하였습니다. 가로의 길이 W와 세로의 길이..

[Level 2] 단체사진 찍기 (Java) 프로그래머스의 Level2 문제인 단체사진 찍기를 풀었다. 나같은 경우 해당 문제를 아래와 같이 풀었었다. 알파벳 8자리에서 나올 수 있는 모든 경우의 수를 모두 구한다. (8! = 40320) 구한 경우의 수들을 조건에 맞는지 확인 후 조건에 만족할 경우 +1 해준다. import java.util.*; public class 단체사진_찍기 { public static void main(String[] args) { int n = 0; // String[] data = { // "N~F=0", // "R~T>2" // }; String[] data = { "M~C1" }; System.out.println(solution(n, data)); } static ..
# Programmers 알고리즘 문제풀이 # LEVEL 1 신규아이디추천 (21. 07. 13) https://github.com/banjjak2/Programmers/blob/main/Level1/%EC%8B%A0%EA%B7%9C%EC%95%84%EC%9D%B4%EB%94%94%EC%B6%94%EC%B2%9C.java - 정규표현식 이용해서 각 스텝별로 구현 (https://banjjak1.tistory.com/8) ------------------------------------------------------------------------------------------ 키패드누르기 (21. 07. 18) https://github.com/banjjak2/Programmers/blob/main/..

문제는 해시 카테고리에 있지만 sort를 이용해서 풀었었다. 아래는 sort를 이용해 풀었을 때의 코드와 정확성 및 효율성 테스트 결과이다. https://github.com/banjjak2/Programmers/blob/main/Level1/%EC%99%84%EC%A3%BC%ED%95%98%EC%A7%80%EB%AA%BB%ED%95%9C%EC%84%A0%EC%88%98_sort.java public String solution(String[] participant, String[] completion){ Arrays.sort(participant); Arrays.sort(completion); int i=0; for(i=0; i