본문 바로가기
  • 개발 삽질 블로그

전체 글89

백준 6603: 로또(JAVA) https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net 조합 알고리즘을 이용하면 간단하게 풀 수 있는 문제다. import java.util.*; public class Main { static StringBuilder sb = new StringBuilder(); public static void main(String[] args){ int n; int[] arr = new int[14]; boolean[] visited = new boo.. 2022. 11. 30.
백준 1182: 부분수열의 합 https://www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 이 문제는 멱집합을 구하는 알고리즘을 조금 변형하면 풀 수 있다. k번 째 원소를 뽑거나 안 뽑거나에 따라 합이 달라진다. k번째 원소를 합한 값, 합하지 않은 값을 넘겨 재귀호출한다. import java.util.*; public class Main { static int powerSet(int[] arr, int s, int target, int k) { .. 2022. 11. 17.
[스무디] 어셈블리어 강의 정리 (18~22강) 18강-JGE/JLE: JG/JL에 같은 경우도 포함JGE: S=O 면 점프JLE: S or Z=1 -JNGE = JL /JNLE = JG -JO: Overflow 비트가 1이면 -JS: Sign 비트가 1이면    19강P(parity): 페리티 플래그parity?동등성을 유지시키는 것비트에서 1의 동등성을 유지시킴 -odd parity: 1의 개수를 홀수로 유지시킴    ex) 1100       p:1(parity까지 홀수개)만약 비트가 오류가 나서 1000     ->1이 되면 1의 개수가 짝수가 되기 때문에 오류가 났다는 것을 알 수 있음*intel: 홀수 패리티 사용, 하위 8bit에 대해서만 체크cf) even parity: 짝수 페리티*crc32: 파일을 체크하고 오류를 복구하는 방법->p.. 2022. 11. 10.
동적계획법/다이나믹 프로그래밍(Dynamic Programming) 동적 계획법: 특정 범위까지의 값을 구하기 위해서 그것과 다른 범위까지의 값을 이용하여 효율적으로 값을 구하는 알고리즘 설계 기법 *이미 했던 계산은 재활용하여 사용하기 -Top-down 형식 재귀로 구현, 큰 문제를 작은 문제로 쪼개나가면서 해결(memoization 활용) 아래 코드는 피보나치를 구하는 함수를 top down 형식으로 구현한 것이다. int fib(int n){ if (n==1 || n==2) return 1; else if(f[n] > -1) //배열이 초기화 된 경우=이미 계산을 한 경우 return f[n]; else return f[n] = fib(n-2) + fib(n-1); } Top down 형식은 재귀 오버헤드가 발생할 수 있다. -Bottom up 형식 반복문으로 구현.. 2022. 11. 9.
[스무디]어셈블리어 강의 13~17강 정리 13. 메모리 지정 방식-offset 이용하는 방법ex) [eax+4]*offset: 변위차mov ebx, 402000mov byte ptr [ebx], 0mov byte ptr [ebx+2], 1 mov byte ptr [ebx+3], 2 mov byte ptr [ebx+4], 3 결과[402000]:  00 01 02 03 ...mov ecx, 0mov byte ptr [402000 + ecx], cl-> [402000] : 00 00 00 00inc ecxmov byte ptr [402000 + ecx], ecx-> [402000] : 00 01 00 00inc ecxmov byte ptr [402000 + ecx], ecx-> [402000] : 00 01 02 00-index 지정 방식mov e.. 2022. 10. 13.
백준 10974: 모든 순열 https://www.acmicpc.net/problem/10974 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net 이 문제는 모든 순열을 출력하는 문제다. 원소가 1부터 증가하는 정수이기 때문에 배열 말고 for문을 이용하였다. import java.util.*; public class Main { public static void pick(int a[], int m, int toPick) { if(toPick==0) { for(int i=0; i 2022. 10. 13.