Algorithm
[프로그래머스] 1차 보물지도 [Java]
보물지도 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 공부시작했을때 처음풀어보는 1단계 문제였다. 그 때 몇시간 동안이나 고민하다가 풀었던 기억이 있다. 그로부터 5달이 지난 지금 다시 풀어볼까하고 풀어보았다. 문제를 보면 일단 10진수를 2진수로 바꿔야한다. 예전에는 일일이 나누어서 했지만, 검색해보니 Integer 클래스의 함수를 사용하면 쉽게 변환이 가능하다고 한다. Integer 클래스의 toBinaryString 함수를 사용하면 된다. 예를들어, int i = 127; String toTwo = Integer.toBinaryString(i..
[백준] 10989 수 정렬하기 3 [Java]
수 정렬하기 3 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 이번 문제는 정렬하기 2번 문제와 달리 arrays.sort로 풀어도 될 것 같아 그 방식으로 비교적 생각도 덜하고 쉽게 풀었다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { public static void main(String[] args) throws IOExce..
[백준] 2751 수 정렬하기 2[Java]
수 정렬하기2 [2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net](https://www.acmicpc.net/problem/2751) 이 문제는 매우 간단하다 생각하고 풀었는데 시간초과가 뜨면서 틀렸다고 해서 당황했던 문제이다. public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in));..
[알고리즘] 삽입 정렬 (Insertion Sort)
1. 삽입 정렬 (insertion sort) 삽입 정렬은 두 번째 인덱스부터 시작 해당 인덱스(key 값) 앞에 있는 데이터(B)부터 비교해서 key 값이 더 작으면, B값을 뒤 인덱스로 복사 이를 key 값이 더 큰 데이터를 만날 때까지 반복, 그리고 큰 데이터를 만난 위치 바로 뒤에 key 값을 이동 자세히 보기 https://visualgo.net/en/sorting 삽입 정렬은 데이터를 '비교'하면서 찾기 때문에 '비교 정렬의 대상이 되는 데이터 외에 추가적인 공간을 필요로 하지 않기 때문에 '제자리 정렬(in-place sort)'이기도 하다. 정확히는 데이터를 서로 교환하는 과정(swap)에서 임시 변수를 필요로 하나, 이는 충분히 무시할 만큼 적은 양이기 때문에 제자리 정렬로 보는 것이다...