로또 문제는 백트래킹을 이용해서 해결합니다.
ATM문제는 그리디 알고리즘을 이용해서 해결할 수 있습니다.
2xn 타일링 2문제는 다이나믹 프로그래밍으로 처리할 수 있습니다. 1칸일 때 타일을 깔 수 있는 방법은 타일을 세로로 까는 방법 1개 입니다. 2칸일 때 타일을 까는 방법은 2X2 타일 하나를 붙이는 것과, 타일 두개를 세로로 까는 방법 2개 입니다. N번째 칸이 추가 될 때 타일 한개를 까는방법은 N-1번의 칸에 타일 한개를 추가하는 방법과 N-2번의 칸에 2개 짜리 타일을 추가하는 방법이 있습니다. N = [N-1] + [N-2] + [N-2]
https://programmers.co.kr/learn/courses/30/lessons/42748?language=scala 알고리즘 연습 - K번째수 | 프로그래머스 실행 결과가 여기에 표시됩니다. programmers.co.kr object Solution01 extends App { var array = Vector(1, 5, 2, 6, 3, 7, 4) var commands = Vector(Vector(2, 5, 3), Vector(4, 4, 1), Vector(1, 7, 3)) def solution(array: Vector[Int], commands: Vector[Vector[Int]]): Vector[Int] = { def innerSol(array: Vector[Int], command..
최근 많은 IT회사들이 코딩테스트를 보면서 코딩 연습 사이트가 많이 생겼습니다. 다음의 사이트들에서 연습할 수 있습니다. 코딩 연습파이썬: https://www.pythonpad.co/courses/intro-1/ https://www.pythonpad.co/courses/intro-1/ 출처: https://118k.tistory.com/249#comment12300916 [개발자로 살아남기]https://www.pythonpad.co/courses/intro-1/ 출처: https://118k.tistory.com/249#comment12300916 [개발자로 살아남기] 출처: https://118k.tistory.com/249#comment12300916 [개발자로 살아남기]https://www.p..
Java를 이용하여 알고리즘 문제(백준, 토마토, 7576)를 풀어 보다가 스캐너(Scanner)를 이용할 때와 버퍼리더(BufferedReader)를 이용할 때의 속도 차이를 비교해 보았습니다. 동일한 로직을 데이터를 입력 받는 부분만 스캐너와 버퍼리더를 이용하여 시간을 비교해본 결과가 다음과 같습니다. 스캐너시간: 1620 ms 메모리: 335660 KB 버퍼리더시간: 552 ms 메모리: 143148 KB 스캐너를 이용하는 경우 시간은 3배, 메모리는 2배 정도 더 사용하는 것을 볼 수 있습니다. 스캐너- JDK7 소스 [바로가기] 버퍼리더- JDK7 소스 [바로가기] 소스를 확인해 보면 스캐너의 캐쉬는 1024, 버퍼리더는 8192이고, 스캐너는 데이터를 입력받을 때 정규식을 이용하여 입력 값을 ..
버블정렬 구현체는 다음과 같다.
기타줄 문제는 그리디 알고리즘으로 해결한다. 적어도 끊어진 기타줄 만큼 구매할 수 있는 최소한의 돈을 출력하면 된다. 1. 패키지로 구매할 수 있는 최소값, 개당으로 구매할 수 있는 최소값을 구하고,2. 패키지로 구매하는 것보다, 개당구매로 6개를 구매하는 것이 더 싼지 확인하고,3. 끊어진 기타줄 만큼 패키지 구매 + min(개당 구매, 패키지구매) 적어도 끊어진 기타줄 만큼 구매이기 때문에 더 구매해도 되는 것을 생각해서 마지막에 패키지 구매가 최소값인지 확인하면 된다. https://www.acmicpc.net/problem/1049
수들의 합2 문제는 투포인터 알고리즘을 이용하여 해결할 수 있다. s(start), e(end) 인덱스를 이용하여, start 로 배열을 증가하면서 sum을 증가시켜 M값과 동일하면 count를 증가하고 end를 증가하면서 sum 을 빼서 동일한 값이 있는지 확인한다. 배열 = {1 2 3 4 2 5 3 1 1 2}일때 start, end는 처음에 0번 인덱스 입니다. start를 증가하면서 1 + 2 + 3을 순서대로 해주면 sum은 6이 되어 M을 넘어서게 됩니다. 이때 end를 증가하면서 sum을 빼주면start가 2번 인덱스이고, end가 0번 인덱스인 시점에 합은 5가 됩니다. 이때 count를 1더해주면 됩니다. 이를 끝까지 반복해주면 됩니다.
- Total
- Today
- Yesterday
- HDFS
- java
- yarn
- oozie
- 오류
- bash
- S3
- HIVE
- Python
- error
- 파이썬
- 하이브
- airflow
- Tez
- AWS
- Linux
- emr
- 정올
- 백준
- build
- SQL
- nodejs
- hbase
- ubuntu
- 다이나믹
- Hadoop
- 하둡
- SPARK
- mysql
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |