본문 바로가기

전체 글199

[알고리즘 문제 해결 전략] 02 알고리즘 분석 - 알고리즘 시간 복잡도 분석 review 알고리즘 : 문제를 해결하는 한 가지 방법을 명료하게 써 놓은 것 소스코드 != 알고리즘 명료하고 모호하지 않은 형태로 표현하기 위해 대체로 소스코드의 형태로 설명하기에 둘이 비슷해 보일 수 있지만 알고리즘은 문제를 해결하는 방법 그 자체이며 완전히 달라 보여도 같은 원리에 따라 동작한다면 같은 알고리즘을 사용한다고 할 수 있다. 한 문제를 해결하는 여러 알고리즘 중에 어떤 것을 배워야 할까? 알고리즘의 평가 기준 1. 시간 : 알고리즘의 수행 속도와 특성을 분석하는 능력을 키울 필요가 있다. 2.공간 : 알고리즘이 아무리 빠르더라도 너무 많은 메모리 공간을 요구한다면 수행 x 두 기준은 서로 상충할 때가 많다. 대회에서는 주로 속도를 중요시한다. 알고리즘의 시간 복잡도 분석 프로그램의 실행시간은 알고리.. 2022. 4. 3.
[백준] 10815숫자카드 c++ 알고리즘 분류는 이분탐색으로 되어있는데 이분탐색으로 안풀고 이렇게 풀어도 될것같아서 이렇게 풀어봤다. 숫자가 마이너스도 들어오기 때문에 배열을 두개 만들어 주었고 들어온 숫자랑 똑같은 인덱스를 체크해주었다. 내일 이분탐색으로도 풀어봐야겠다. #include using namespace std; bool num[10000000]; bool Mnum[10000000]; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int m,temp; cin >> m; for (int i = 0; i > temp; if (temp < 0) Mnum[-(temp)] = true; else num[temp.. 2022. 4. 3.
[뇌를 자극하는 자바] 17장 객체의 직렬화 -코드 공부 프리비티브 타입 boolean , byte, short, int, long, float, double, char 무의미한 값들이 많은 희소배열을 직렬화할때는 의미있는 값만 직렬화를 하는 것이 경제적 선별적으로 직렬화 하기 위해서는 ? 프로그래머가 명령문을 직접 작성해야한다. 이전 코드에서는 writeObject 를 쓰면 객체가 알아서 직렬화가 되었다. 17-9 직접 직렬화 메소드를 작성 import java.io.*; class DistrChart implements Serializable { int arr[][]; DistrChart() { arr = new int[10][10]; } //private, void ,IOXception 으로 던지는 throw절 //private 으로 하는 이유? priv.. 2022. 4. 1.
[백준]1094막대기 C++ 비트마스킹 문제이다. #include using namespace std; int main() { int temp = 0; for (int i = 0; i 1000 2^3 =8 temp -> 10000 2^4 =16 . . temp ->1000000 2^6 =64 #include using namespace std; //지민이가 가지고 있는 막대의 길이를 모두 더한다.처음에는 64cm 막대 하나만 가지고 있다.이때, 합이 X보다 크다면, 아래와 같은 과정을 반복한다. //가지고 있는 막대 중 길이가 가장 짧은 것을 절반으로 자른다. //만약, 위에서 자른 막대의 절반 중 하나를 버리고 남아있는 막대의 길이의 합이 X보다 크거나 같다.. 2022. 3. 30.