본문 바로가기

패스트캠퍼스49

[백준] 3079 - 입국심사 by C++ https://www.acmicpc.net/problem/3079 3079번: 입국심사 첫째 줄에 N과 M이 주어진다. (1 ≤ N ≤ 100,000, 1 ≤ M ≤ 1,000,000,000) 다음 N개 줄에는 각 심사대에서 심사를 하는데 걸리는 시간인 Tk가 주어진다. (1 ≤ Tk ≤ 109) www.acmicpc.net 전형적인 이분탐색 문제였다. 이분탐색을 제대로 이해하질 못해서, 이 문제를 통해 원리를 어느정도 이해할 수 있었다. 알고리즘 방식 이분 탐색의 대상은 상근이와 친구들이 심사를 마치는데 걸리는 시간이였다. (즉 정답) 시작값(st) = 0, 끝값(en) = Tk의 최대값 * M으로 지정해주었다. (시작값 또한 Tk의 최소값 * M으로 지정해도 되지만, 의미 없는 것 같아 생략) 1. .. 2022. 12. 22.
[백준] 2064 - IP주소 https://www.acmicpc.net/problem/2064 2064번: IP 주소 네트워크에 연결되어 있는 컴퓨터들은 각각 하나의 IP 주소를 갖게 된다. 그리고 이러한 IP 주소를 갖는 컴퓨터들이 여러 개 모여서 하나의 IP 네트워크를 구성하게 된다. IP 네트워크는 ‘네트워 www.acmicpc.net 비트마스킹 방식을 사용하지 않으면 구조적으로 시간 초과가 날 수밖에 없는 문제였다. 알고리즘 방식 1. C++에는 Split함수가 없으므로 직접 구현 2. 입력된 IP주소를 '.'을 기준으로 Split 하여 4개의 숫자를 vector ip에 저장 3. 네트워크 주소는 32-m자리까지 고정이고, 이후가 랜덤 값이므로, 입력된 ip주소들 간에 차이가 발생하는 최소 자리수를 구한다. 4. 3.에서 구.. 2022. 12. 16.
[백준] 15661 - 링크와 스타 https://www.acmicpc.net/problem/15661 15661번: 링크와 스타트 첫째 줄에 N(4 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에 S가 주어진다. 각 줄은 N개의 수로 이루어져 있고, i번 줄의 j번째 수는 Sij 이다. Sii는 항상 0이고, 나머지 Sij는 1보다 크거나 같고, 100 www.acmicpc.net 개별적으로 비트마스킹 방식과 백트래킹 방식을 사용하여 풀었다. 아직 비트마스킹이 익숙하지 않아 생각하는데 오래 걸렸다. 1. 비트마스킹 알고리즘 방식 N = 4일 때, 4명의 학생을 조합을 통해 뽑을 수 있는 경우는 0과 2^4 - 1의 숫자가 비트에 저장되는 방식과 같다. 다시 말해 각 비트 자리수는 k번째 학생의 상태를 나타내고, 뽑히지 않은 경우 .. 2022. 12. 9.
11월 3주차 회고록 꾸준히 공부하는 습관은 어느정도 다시 자리잡은 것 같다. 다만, 매주 이야기하고 있지만, 시간을 효율적으로 사용하려고 노력 중이다. 여전히 알고리즘은 매일 1문제 씩 풀고있다. 캐시 메모리의 원리 Cache - Temporary Storage 캐시 메모리(Cache Memory)는 CPU 프로세서가 빠른 속도로 데이터를 주고 받을 수 있도록 도와주는 메모리 CPU프로세서와 인접한 곳에 위치 참조 지역성 원리(Locality of Reference) 자주 사용되는 데이터에 대한 판단 기준 (시간 지역성과 공간 지역성으로 구분) 주 기억장치 | 보조기억장치 등과 같은 메모리 저장소의 데이터를 미리 가져와 보관하는 임시 저장소 역할 Cache Blocks - Tag Field, Valid Bit, Data 캐.. 2022. 11. 22.
11월 2주차 회고록 매일 알고리즘을 풀기로 한 것은 잘한 것 같다. 스터디를 오전에 진행하다보니 아침 일찍 일어나게되고 그러다보니 하루를 길게 쓴다. 다만 부작용으로는 잠을 너무 늦게자는 바람에 목요일부터였나.... 졸려서 정신을 못차렸다. 그리고 일요일은 하루종일 잤다 ㅋㅋㅋㅋ 이게 맞나.... 조금 일찍자려고 노력을 해야될 것 같다. 생각보다 공부하는 시간에 비해 공부하는 양이 얼마 안된다. 정확히 말하자면 앉아있는 시간에 비해 공부하는 양이 얼마안된다. 백기선님이 스프링 관련해서 공부하는 방법을 유튜브에 찍은 동영상을 봤었는데, 딱 그 말이 떠오른다. 처음 공부할 때는 가성비 수준까지만 공부하면 된다고.... 수준에 맞지 않는 부분을 너무 깊게 이해하려고하는데 시간을 많이 쓰는 것 같다. 가성비를 생각해서 공부하는 습.. 2022. 11. 14.
11월 1주차 회고록 알고리즘 스터디를 시작했다. 하루에 1문제씩 가볍게 하려는 마음으로 시작했는데, 막상 시작하고서 의욕이 앞서서 어려운 문제들을 선정한 나머지, 알고리즘에 시간을 생각보다 너무 많이 썼다. 최근에 코딩테스트 때문에 C++(알고리즘)위주로 공부했어서 그런가, 자바 수업 듣는데 이걸 까먹네? 싶은 것들이 있었다. 어쨋든 java & spring으로 취업준비를 하기 때문에, 11월 한달동안은 알고리즘 매일 1문제 + Java의 정석 7장까지 + 패캠 제공 인강 완강을 목표로 공부할 계획이다. 알고리즘은 일반적(?)으로 코테에서 많이나오는 것들 위주로 진행하는게 좋을 것 같다. 2의 보수 처음 자바의 정석을 공부할 때도 몇 시간씩 매달려서 겨우겨우 이해했던게 기억이 난다. 결과적으로 핵심은 2의 보수의 정의가 어.. 2022. 11. 8.