본문 바로가기

전체 글168

[백준] 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.
[Java] ToyProject - SmartStore 프로젝트 요약 1. 모든 고객의 사이트에서 머문 시간 및 사용 금액을 저장해놓고 머문 시간 및 사용 금액을 통해 고객에게 등급을 부여한다. 2. 등급을 기반으로 분류된 고객의 정보들을 다시 이름, 머문 시간, 사용 금액을 통해 오름차순|내림차순으로 정렬하여 화면에 출력한다. 세부 설명 초기화면은 위와 같다. 1. 등급 분류 기준 (Classification Parameter) 등급 분류 기준을 담은 싱글톤 객체는 Groups이며, Groups객체 하위에 Group[]을 기반으로 등급 분류 기준이 관리 Group 객체는 필드로 [등급 분류, [머문 시간, 사용 금액]]을 소유 Set Parameter 초기에는 어떤 기준도 없는 상태로, 새로운 등급 분류 기준을 추가 등급 분류 종류는 enum을 통해 관리하.. 2022. 11. 26.
11월 3주차 회고록 꾸준히 공부하는 습관은 어느정도 다시 자리잡은 것 같다. 다만, 매주 이야기하고 있지만, 시간을 효율적으로 사용하려고 노력 중이다. 여전히 알고리즘은 매일 1문제 씩 풀고있다. 캐시 메모리의 원리 Cache - Temporary Storage 캐시 메모리(Cache Memory)는 CPU 프로세서가 빠른 속도로 데이터를 주고 받을 수 있도록 도와주는 메모리 CPU프로세서와 인접한 곳에 위치 참조 지역성 원리(Locality of Reference) 자주 사용되는 데이터에 대한 판단 기준 (시간 지역성과 공간 지역성으로 구분) 주 기억장치 | 보조기억장치 등과 같은 메모리 저장소의 데이터를 미리 가져와 보관하는 임시 저장소 역할 Cache Blocks - Tag Field, Valid Bit, Data 캐.. 2022. 11. 22.
[백준] 20208 - 진우의 민트초코우유 by C++ https://www.acmicpc.net/problem/20208 20208번: 진우의 민트초코우유 첫번째 줄에 민초마을의 크기인 N과 진우의 초기체력 M, 그리고 민트초코우유를 마실때 마다 증가하는 체력의 양 H가 공백을 두고 주어진다. N, M, H는 모두 10보다 작거나 같은 자연수이다. 두번째 www.acmicpc.net 최근 거의 한 달 동안 매번 풀 때마다 느끼는데 반례도 너무 못찾고 구현력도 웰케 떨어졌는지 모르겠다. 생각하다보면 사고가 그냥 멈춘다. 대체 뭐가 문제일까. 반례도 아니고, 그냥 구현력이 딸려서 2시간 동안 그것만 찾고있었다. 현타가 많이온다.... 알고리즘 방식 시간복잡도는 O(N!)이고 백트래킹을 통해 풀었다. N이 최대 10이라 10^10 = (1 * 10) *(2 * .. 2022. 11. 21.
[백준] 1553 - 도미노 by C++ https://www.acmicpc.net/problem/1553 1553번: 도미노 찾기 도미노의 크기는 1×2이고, 크기가 1×1인 칸으로 나누어져 있다. 칸은 수를 나타내며, 위와 같이 총 28가지가 있다. 크기가 8×7인 격자가 있고, 격자의 각 칸에는 정수가 하나씩 들어있다. 위의 도 www.acmicpc.net 진짜 금방 풀 수 있었는데, 배열 접근 범위 제한과정에서 실수를 했다. 평상 시에 거의 하지 않는 실수여서 찾는데 너무 오래걸렸다 ㅠㅠ 침착하게 차근차근 코드를 짜자 핵심 변수 int board[8][7] : 입력된 격자를 저장 int vis[8][7] : 격자가 도미노로 채워졌는지 여부를 확인 int domino[7][7] : (r, c)의 값을 가지는 도미노의 잔여 여부 확인 voi.. 2022. 11. 16.
11월 2주차 회고록 매일 알고리즘을 풀기로 한 것은 잘한 것 같다. 스터디를 오전에 진행하다보니 아침 일찍 일어나게되고 그러다보니 하루를 길게 쓴다. 다만 부작용으로는 잠을 너무 늦게자는 바람에 목요일부터였나.... 졸려서 정신을 못차렸다. 그리고 일요일은 하루종일 잤다 ㅋㅋㅋㅋ 이게 맞나.... 조금 일찍자려고 노력을 해야될 것 같다. 생각보다 공부하는 시간에 비해 공부하는 양이 얼마 안된다. 정확히 말하자면 앉아있는 시간에 비해 공부하는 양이 얼마안된다. 백기선님이 스프링 관련해서 공부하는 방법을 유튜브에 찍은 동영상을 봤었는데, 딱 그 말이 떠오른다. 처음 공부할 때는 가성비 수준까지만 공부하면 된다고.... 수준에 맞지 않는 부분을 너무 깊게 이해하려고하는데 시간을 많이 쓰는 것 같다. 가성비를 생각해서 공부하는 습.. 2022. 11. 14.