본문 바로가기

study

(104)
[알고리즘/백준] 2659번 - 십자카드 문제 🔗 문제 2659번: 십자카드 문제 입력은 한 줄로 이루어지며, 이 한 줄은 카드의 네 모서리에 씌여있는 1 이상 9 이하의 숫자 4개가 시계 방향으로 입력된다. 각 숫자 사이에는 빈칸이 하나 있다. www.acmicpc.net level : 실버 3 알고리즘 분류: 브루트포스(완전탐색), 정렬 문제 설명: 위와 같은 십자 모양 카드에서 네 모서리의 숫자( 1 ~ 9, 중복 가능)를 시계 방향으로 읽어서 만들 수 있는 수(3227, 2273, 2732, 7322) 중 가장 작은 수 2273을 시계수라고 한다. 입력으로 주어진 카드의 시계수를 계산하여, 그 시계수가 모든 시계수들 중 몇 번째로 작은 시계수인지를 알아내는 프로그램을 작성하시오 🔮 풀이 아이디어 문제 접근 방식 하나의 십자 모양 카드에서 만들..
[알고리즘/백준] 2960번 - 에라토스테네스의 체 🔗 문제 2960번: 에라토스테네스의 체 2, 4, 6, 8, 10, 3, 9, 5, 7 순서대로 지워진다. 7번째 지워진 수는 9이다. www.acmicpc.net level : 실버 4 문제 설명: 에라토스테네스의 체는 N보다 작거나 같은 모든 소수를 찾는 유명한 알고리즘이다. N, K가 주어졌을 때, K번째 지우는 수를 구하는 프로그램을 작성하시오. 1. 2부터 N까지 모든 정수를 적는다. 2. 아직 지우지 않은 수 중 가장 작은 수를 찾는다. 이것을 P라고 하고, 이 수는 소수이다. 3. P를 지우고, 아직 지우지 않은 P의 배수를 크기 순서대로 지운다. 4. 아직 모든 수를 지우지 않았다면, 다시 2번 단계로 간다. 🔮 풀이 아이디어 에라토스테네스의 체 알고리즘을 알고 있어서 먼저 함수로 작성 ..
[알고리즘/백준] 26069번 - 붙임성 좋은 총총이 🔗 문제 26069번: 붙임성 좋은 총총이 첫번째 줄에는 사람들이 만난 기록의 수 $N\ (1 \le N \le 1\ 000)$이 주어진다. 두번째 줄부터 $N$개의 줄에 걸쳐 사람들이 만난 기록이 주어진다. $i + 1$번째 줄에는 $i$번째로 만난 사람들의 이름 $A_i$ www.acmicpc.net level : 실버 4 문제 설명: 무지개 댄스를 추지 않고 있던 사람이 무지개 댄스를 추고 있던 사람을 만나게 된다면, 만난 시점 이후로 무지개 댄스를 추게 된다.기록이 시작되기 이전 무지개 댄스를 추고 있는 사람은 총총이(ChongChong) 뿐이라고 할 때, 마지막 기록 이후 무지개 댄스를 추는 사람이 몇 명인지 구해보자! 🔮 풀이 아이디어 defaultdict(int)로 딕셔너리를 선언해주면 ke..
[알고리즘/백준] 1912번 - 연속합 카테고리 : DP(다이나믹 프로그래밍) 1912번 연속합 - https://www.acmicpc.net/problem/1912 예제 입력 1 10 10 -4 3 1 5 6 -35 12 21 -1 예제 출력 1 33 접근 방법 n개의 정수로 이루어진 임의의 수열 중 연속된 수들의 합이 가장 큰 경우를 출력해야 한다. 특정 수의 경우의 수는 이전에 연속된 합을 선택하거나 선택하지 않는 경우이다. 선택하는 경우 : 이전 합에 자신의 수를 더한 값 선택하지 않는 경우 : 자신의 수 (이전에 연속된 합을 선택하지 않으면서 현재 숫자가 처음이 된다) 처음에는 더한 모든 경우의 수를 배열에 저장해야 할까 생각했는데 과정을 적어보니 결국 이전 값이 가장 큰 경우에 자신의 수를 더하는 경우가 합이 가장 클 수 밖에 없다..
[minishell] parsing - 1.preprocessing 1-1.tokenization 관련 PR : #33 token.c arr.c libft/lst*.c 토큰화 (tokenization)는 입력으로 받아온 문자열 형태의 데이터를 해석할 수 있는 token으로 만드는 과정이다. 아래의 구조체 struct s_token을 사용하여 토큰화를 진행하였다. token 구조체는 생성될 때 libft에 구현된 연결리스트 node의 content에 저장된다. 구조체 정보 typedef struct s_token { t_ttype type; char *str; } t_token; enum e_token_type ( t_ttype ) 정보 typedef enum e_token_type { T_WORD, // space 문자와 아래 문자들을 제외한 모든 문자 T_PIPE, /..
[C] stat / lstat / fstat 함수 파일 상태(정보) 가져오기 지정한 파일의 정보를 담고 있는 stat 구조체를 통해 정보를 얻을 수 있는 시스템 함수들 ls -al 명령어로 알 수 있는 내용들을 대부분 알 수 있다. #include int fstat(int fildes, struct stat *buf); int lstat(const char *restrict path, struct stat *restrict buf); int stat(const char *restrict path, struct stat *restrict buf); 구조체 stat - 함수의 인자로 들어가는 struct stat - st_dev - 파일을 포함하는 디바이스 번호 - st_mode - 파일의 모드 (접근권한) - 파일 종류 비트 마스크로 표시됨 - st_nl..
[알고리즘/백준] 1967번 - 트리의 지름 카테고리 : Tree / DFS(그래프 탐색) 1967번 트리의 지름 - https://www.acmicpc.net/problem/1967 접근 방법 먼저 tree의 정보를 딕셔너리를 통해 저장해주었다. p는 부모 노드, c는 자식 노드, w는 가중치 정보이다. tree = defaultdict(list) n = int(input()) for _ in range(n - 1): p, c, w = map(int, input().split()) tree[p].append((c, w)) DFS를 통해 트리를 탐색한다. 루트 노드의 번호가 항상 1이라고 가정되어있기 때문에 항상 루트부터 시작할 수 있다. tree는 아까 저장해두었던 딕셔너리이고 i는 노드 번호이다. def DFS(tree, i): global r..
[Back-end/Spring] 스터디 4주차 정리 진도 : 자바(섹션4-마무리) + 스프링 입문(섹션6,7) 자바 프로그래밍 입문 강좌 - https://www.inflearn.com/course/실전-자바_java-renew 스프링 입문 - https://www.inflearn.com/course/스프링-입문-스프링부트 나의 키워드 : 파라미터 바인딩 / 템플릿 메소드 패턴 / AOP 스터디원의 키워드 : OCP / 단위 테스트 vs 통합 테스트 / 프록시 / AOP / 트랜잭션 / JPA 아래의 개념 공부는 출처의 글을 정리하여둔 것 [SQL] bind variable의 사용 의미 [JDBC] PreparedStatement 개념 및 예제 [10분 테코톡] 🙋‍♂️로비의 SQL 인젝션 파라미터 바인딩 [Spring] Spring에서 사용되는 템플릿 ..