일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- BFS
- bloc
- ARM
- ML
- Kaggle
- Flutter
- pytorch
- rao
- Got
- Dreamhack
- Widget
- BOF
- MATLAB
- system hacking
- llm을 활용 단어장 앱 개발일지
- Image Processing
- DART
- Computer Architecture
- BAEKJOON
- 백준
- fastapi를 사용한 파이썬 웹 개발
- 파이토치 트랜스포머를 활용한 자연어 처리와 컴퓨터비전 심층학습
- 영상처리
- PCA
- Algorithm
- Stream
- FastAPI
- MDP
- study book
- C++
- Today
- Total
목록All (309)
Bull

https://www.acmicpc.net/problem/13913문제0 1 2 3 ... 100000 으로 이루어진 일자형 길에 x+1, x-1 2*x로 움직일 수 있다고 했을 때 목적까지 가는 최단 경로를 구하는 문제이다.아이디어단순 BFS문제이다. 하지만 visit으로 최단 경로보다 이후에 간 인덱스는 방문처리하여 다시 방문하지 않도록 한다. 여기까지는 스스로 짰지만 이후에도 메모리 초과가 걸렸다.왜냐하면 최단 경로를 vector를 사용하여 리스트처럼 저장을했는데이는 상당히 많은 배열을 큐에 저장하기 때문이다.단순하게 생각해보면 벡터의 크기가 1에서 100000까지인데 방문한 인덱스를 제외하면 최대 1에서 33333까지 3개씩 저장해 나갈 것이다.(1,2,2,2,3,3,3,4,4,4....) 그러면..

의미for문에서 쓰이며 여러 시퀀스를 동시에 순회한다. 예제가 더 이해하기 쉬우니 예제로 남길 것이다.예제1. 두 리스트를 함께 순회list1 = [1, 2, 3]list2 = ['a', 'b', 'c']for item1, item2 in zip(list1, list2): print(item1, item2)1 a2 b3 c2. 세 리스트를 함께 순회list1 = [1, 2, 3]list2 = ['a', 'b', 'c']list3 = [10.1, 20.2, 30.3]for item1, item2, item3 in zip(list1, list2, list3): print(item1, item2, item3)1 a 10.12 b 20.23 c 30.33. 리스트와 튜플을 함께 순회list1 = [1..
r gdb 실행 시 r 혹은 ni 같이 명령어 이후에 문자열을 넣을 수 있다. 하지만 \x00처럼 널바이트는 무시되어 들어간다..그래서 원하는 위치에 바이트코드는 들어가지만 널바이트가 들어가는 곳은 형태가 그대로 유지된다. 이것에 대한 해결방법은 시간이 되면 찾아볼 예정.

got에 대해서 알고 있었지만 plt는 사실 잘 모르고 있었다. python에서 pwntools을 쓰던 중 lib 동적링킹된 함수랑 실행파일에서 실행하는 함수랑 무슨 차이가 있는 건지 명확하게 나눠지지가 않아서 다시 공부했다. dreamhack 학습자료와 여러 블로그 자료를 보면서 한 지식으로 수렴했다.gdb로 보는 것 보다 ida로 보는 게 편했다. 이론적인 건 다른 블로그나 드림핵에서 잘 설명했으니 동작만 간단하게 설명한다.Codee = ELF('./validator_revenge')libc = ELF('./libc-2.27.so')read_got = e.got['read']read_plt = e.plt['read']read_libc_symbols = libc.symbols['read']print(f..

https://www.acmicpc.net/problem/9019문제원문에 나오는 D, S, L, R 연산을 구현하여 A, B입력 시 A→B가 될 때 까지 어떤 연산을 해야하는 지 출력해야 하는 문제이다.아이디어BFS를 통해 D, S, L, R, DD, DS, DL, DR, SD, SS, SL, SR, ...처럼 레벨 단위로 숫자를 확인한다. 여기까진 OK. 하지만 문자열의 제한이 없기 때문에 DSLDLSDRRSRSDSL... 같이 긴 숫자는 Queue에 메모리초과가 발생한다.숫자는 0~10000미만이다. 이것을 활용하여 10000까지 visit을 확인하여 이미 확인한 숫자는 확인하지 않는다. 또한 자료형에 대해서도 short로 바꿔줄 수 있다. int를 쓰면 틀리는 지는 확인해보지 않았지만 일단 sho..
보호되어 있는 글입니다.
보호되어 있는 글입니다.

https://www.acmicpc.net/problem/14502문제문제의 연구소에 벽(1)을 최대 3개 설치가 가능하고 바이러스(2)는 벽이 막혀있는 곳 까지 퍼질 수 있다. 이러한 조건에서 바이러스가 퍼졌을 때, 안전한 장소(0)를 얼만큼 확보할 수 있는 지 출력하는 문제이다.아이디어BFS를 통해 바이러스를 퍼뜨린다. 벽을 최대 3개 설치할 수 있는 로직은 행열 순으로 벽을 하나씩 설치했다가 해제했다가 순서대로 모든 경우의 수를 구한다. 바이러스가 퍼진 상태 + 벽이 최대 3개가 설치된 상태에서 최대 안전한 장소가 얼마나 확보됐는지 비교하며 max값을 구한다. 2 0 0 0 1 1 00 0 1 0 1 2 00 1 1 0 1 0 00 1 0 0 0 0 00 0 0 0 0 1 10 1 0 0 0 0 0..
보호되어 있는 글입니다.
보호되어 있는 글입니다.

https://www.acmicpc.net/problem/2206문제원문을 보면 알 수 있듯이, 왼쪽 위 기준에서 오른쪽 아래로 가는데 벽(1)을 한 번만 깰 수 있고 다음 부터는 깰 수 없다. 그러한 제약사항이 있는 상태에서 최단 거리를 구하면 된다.아이디어BFS를 이용하는데 Queue에 들어가는 정보가 (x,y)와 벽을 깬 적이 있는지에 대한 boolean이 들어가면 된다. code#include #include #include using namespace std;const int MAX = 1000; // 그리드 최대 크기// (-1, 0) (0, 1) (1, 0) (0, -1) 네 방향 이동int dx[] = {-1, 0, 1, 0}; // 방향 배열: x 좌표int dy[] = {0,..

series of 3GNG강의 보는 게 귀찮아서, GPT로 능동적인 공부하기: 어차피 강의는 머리에 잘 안 남아.. 결과https://chun-bae.github.io/Base64onNext.js/ Base64 chun-bae.github.io언젠가 한 번 계속 만들어야지... 만들어야지... 하다가 조만간 공공데이터 활용 대회로 Nextjs 쓸 거 같아서 겸사겸사 만들었다. 간단한 홈페이지이기 때문에 소요시간은 3~4시간 걸린 것 같다. Next를 처음 다뤄봐서 환경설정이나 SSR, CSR 개념에 대해 숙지가 잘 안 되어 있었다. 프로젝트 생성npx create-next-app@latest .Typescript : NoESLink : YesTailwind CSS : Yessrc/ directory : ..