Coding/Algorithm
-
[Java] 퀵 정렬 구현Coding/Algorithm 2020. 1. 8. 13:54
퀵 정렬을 자바로 구현하는 두 가지 방법 pivot을 중간에 놓았을 때 import java.util.Arrays; // 피봇을 중간에 놓고하는 코드 public class QuickSort { public void sort(int[] data, int l, int r) { int left = l; int right = r; int pivot = data[(l + r) / 2]; do { while (data[left] pivot) right--; if (left
-
[Java] 선택 정렬 구현Coding/Algorithm 2020. 1. 2. 13:10
package ch0; public class BinarySearch { public static void main(String[] args) { // 이진탐색을 수행할 배열 int[] arr = { 3, 19, 34, 50, 87 }; // 찾으려는 값 int target = 19; binarySearch(arr, target); } private static void binarySearch(int[] arr, int target) { int left = 0; int right = arr.length - 1; int mid; while (left
-
[백준알고리즘] 11399번: ATM - python 풀이Coding/Algorithm 2019. 11. 5. 16:59
11399번: ATM 출처: 백준알고리즘 문제 인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 Pi분이다. 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 예를 들어, 총 5명이 있고, P1= 3, P2= 1, P3= 4, P4= 3, P5= 2 인 경우를 생각해보자. [1, 2, 3, 4, 5] 순서로 줄을 선다면, 1번 사람은 3분만에 돈을 뽑을 수 있다. 2번 사람은 1번 사람이 돈을 뽑을 때 까지 기다려야 하기 때문에, 3+1 = 4분이 걸리게 된다. 3번 사람은 1번, 2번 사람이 돈을 뽑을 때까지 기다려야 하기 때문에, 총 3..
-
[백준알고리즘] 1152번: 단어의 개수 - python 풀이Coding/Algorithm 2019. 10. 15. 13:29
1152번: 단어의 개수 출처: 백준알고리즘 문제 영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다. 출력 첫째 줄에 단어의 개수를 출력한다. 풀이 # 백준 알고리즘 1152번: 단어의 개수 a = input() b = list(a.strip().split()) print(len(b)) 문자열을 입력받는다. s..
-
[백준알고리즘] 17487번: 타자 연습 - python 풀이Coding/Algorithm 2019. 10. 14. 17:08
17487번: 타자 연습 출처: 백준알고리즘 문제 [그림1] QWERTY 키보드 영문 자판 배열. 출처: Wikipedia 건덕이는 최근 자신의 독수리 타법의 속도에 좌절하며 타자를 연습하기 시작했다. 건덕이가 연습하는 타자법은 QWERTY 자판 배열을 기준으로 Y, G, B와 같거나 왼쪽에 있는 키는 왼손으로, 나머지 키는 오른손으로 누르는 타자 기법이다. 기준은 키보드의 각 행에 한한다. 건덕이는 한 쪽 손이 더 많이 쓰이면 비효율적이라고 생각한다. 따라서 양 쪽에 달려 있는 Shift키와 길이가 긴 스페이스바를 통해 양손의 키를 누른 횟수의 차를 최소로 하도록 문장을 입력하려고 한다. 건덕이의 각 손이 키보드를 누른 횟수를 구해 보자. 입력 건덕이가 입력할 문장S가 주어진다.S는 영어 대소문자와 공..