전체 글 349

[ALGOS STUDY] 2023-1-WEEK5 정수론

유클리드 호제법 - 유클리드 호제법의 정의 (https://terms.naver.com/entry.naver?docId=2073670&cid=47324&categoryId=47324) 두 정수 a, b의 최대공약수를 G(a, b)라고 하자. 정수 a, b, q, r (b ≠ 0)에 대해서 a = bq + r이면 G(a, b) = G(b, r)이 성립한다. - 유클리드 호제법으로 최대공약수 구하기 int gcd(int a, int b) { while (b != 0) { int tmp = a % b; a = b; b = tmp; } return a; } - 유클리드 호제법으로 최소공배수 구하기 int lcm(int a, int b) { return a / gcd(a, b) * b; } - 문제 풀이 예시 :..

[ALGOS STUDY] 2023-1-WEEK4 그리디

Greedy Algorithm - 개념 : 최적화 문제를 해결하기 위한 알고리즘 각 단계에서 최적의 선택을 하면서 동작함. 각 단계에서의 선택은 지역적으로 최적이지만(local solution 제공), 전체적으로는 최적 해를 보장하지 않음(global solution 보장 x) 매우 간단하고 직관적인 방식이나 매 상황에서 최적해를 제공하지 않음. 그리디 알고리즘이 최적해를 보장하기 위해서는 다음의 두 조건을 만족해야 한다. - 조건 탐욕적 선택 속성 (Greedy-choice property) 앞의 선택이 이후의 결과에 영향을 주지 않는 경우 탐욕적으로 선택해도 최적해를 구할 수 있음. 현재 순간의 최적해를 선택하면 번복하지 않음. 최적 부분 구조 (Optimal substructure) 전체 문제의 최..

[ALGOS STUDY] 2023-1-WEEK3 Priority Queue, Map, Set

Priority Queue - 우선순위 큐 : 지정된 우선순위 규칙에 따라 우선순위가 큰 데이터를 먼저 반환 - 힙(heap) 자료구조 이용 최댓값이나 최솟값을 빠르게 찾아내도록 만들어진 자료구조 완전이진트리의 형식으로 매순간 최대, 최소를 얻도록 정렬되어 있음 (모든 데이터가 정렬되어 있는 것은 아님.) 최댓값을 반환하는 최대 힙, 최솟값을 반환하는 최소 힙 최악의 경우에도 O(logN)을 보장함. - STL #include #include using namespace std; int main() { priority_queue 변수명; return 0; } 정렬은 내림차순이 기본 오름차순을 사용하기 위해서 정렬기준 자리에 함수를 만들어서 넣어주거나, greater을 넣어주면 됨. push() : 원소 ..

[ALGOS STUDY] 2023-1-WEEK2 Stack, Queue, List

자료구조 : 컴퓨터과학에서 데이터를 구조적으로 표현하는 방식 선형 자료구조 : 하나의 자료 뒤에 하나의 자료가 배치되는 구조 ex) stack, queue, list, 배열 비선형 자료구조 : 하나의 자료 뒤에 여러 자료가 올 수 있는 구조 ex) 트리, 그래프 Stack - LIFO (Last in FIrst out) - STL #include push() : 스택에 원소 추가 pop() : 스택에서 원소 삭제 top() : 스택 최상단 원소 확인 size() : 스택의 사이즈 확인 empty() : 스택이 비어있는지 확인 - 문제 풀이 예시 : 백준 10828 스택 (https://www.acmicpc.net/problem/10828) #include #include #include using nam..

[ALGOS STUDY] 2023-1-WEEK1 C/C++ 입출력, STL 라이브러리, 복잡도

C/C++ 입출력 - C++의 경우 코드를 작성할 때 아래와 같은 틀에서 시작한다. #include using namespace std; int main() { // return 0; } - c++ 속도 향상하기 ios_base::sync_with_stdio(false) cin.tie(NULL) // 줄바꿈 시 endl 대신 '\n' 사용 STL 라이브러리 - STL(Standard Templete Library) : 자료구조와 이에 관련된 알고리즘을 구현한 템플릿의 모음 - STL을 포함하는 C++ 표준 라이브러리 : C++ 표준 라이브러리 구성 요소 STL Container STL Iterators STL Adapters STL Algorithms STL Function Object, Allocato..

[포럼📃]제12회 한국인터넷거버넌스포럼(KrIGF 2023) 후기

안녕하세요. 저는 올해 KISA(한국인터넷진흥원)에서 운영하는 EG@IG 3기로 활동 중입니다. 여러 세션을 듣고, 제가 직접 세션에 토론자로 참여도 했던 KrIGF 2023 후기를 작성하려고 합니다. 일시 : 2023년 7월 7일 9:40~18:00 장소 : 프란치스코 교육회관 저는 , , 세션을 들었고, 세션에 참여했습니다. 에서는 인터넷 거버넌 이슈 속 인공지능에 대해 이야기하셨습니다. 신뢰할 수 있는 인공지능을 위한 양질의 데이터의 필요성에 대해서 깊이 공감했습니다. 현장에서 나온 질문과 답변도 인상 깊었습니다. 첫 세션이 끝나고는 점심시간이었습니다. 세션은 숙명여대 소프트웨어학부 본전공, 복수전공생으로 구성되어 있고 사이버안보연구소 수석연구원님이 사회를, 사이버안보연구소 소장님께서 자문을 해주셨..

[활동🤝]APIGA(아태지역 인터넷 거버넌스 아카데미) 2023 후기

저는 2023년 7월 24일부터 28일까지 서울 프레지던트 호텔에서 열린 APIGA 2023에 참여했습니다. 사전 준비신청은 APrIGF fellowship을 신청하는 사이트와 같은 곳에서 진행되었고, 저는 KISA의 EG@IG 3기 소속이라 가산점이 있었습니다. 합격 후 알레르기 여부와 옷 사이즈를 조사하는 메일, 사전에 해야 할 일을 알려주시는 메일, info kit 메일, 일정 안내 메일 등을 받았습니다. APIGA 측으로부터 오는 메일은 전부 꼼꼼히 챙기셔야 합니다. APIGA에 참여하기 위해서는 APNIC과 ICANN에서 제공하는 온라인 강의들을 수료해야 합니다. 영어강의이지만 어렵지 않은 영어이고, 몇몇 강의는 한국어 자막도 있어서 수월하게 수강했습니다. APNIC에서 들어야 하는 코스 하나가..

[SW중심대학사업단 해커톤/IRIS🌈] 🌡️💤SWING 2023 교육&데이터 해커톤 with LONDON 후기 ❤️

제 인생의 첫 해커톤인 SWING 2023 교육&데이터 해커톤 with LONDON의 후기를 남겨보려고 합니다! 기술적인 후기를 남기는 것보다는 제가 느꼈던 감정들을 적는 글입니다. 한 달 반 뒤에 적는 글이지만 저는 매일 블로그에 제 하루를 적어두기 때문에 블로그 글을 기반으로 쓰기 때문에 꽤 생생합니다. 사용한 데이터와 작성한 코드들을 직접 보고 싶으시다면 깃허브 레포지토리를 방문해 보시길 추천합니다! https://github.com/yeonjae02/SWING2023-IRIS GitHub - yeonjae02/SWING2023-IRIS: 🌈2023 SWING 해커톤 7조 IRIS🌈🌈2023 SWING 해커톤 7조 IRIS🌈. Contribute to yeonjae02/SWING2023-IRIS d..

[혼공학습단 10기✍️] 회고록 : 6주동안의 자바 학습을 마치며

안녕하세요! 최연재입니다. 혼공학습단 10기를 마친 지금, 회고록을 작성하려고 합니다. 저는 자바로 10기 활동을 완주했습니다. 저는 학습 계획을 짜는 것도 고민을 굉장히 많이 하는 편입니다. 그래서 계획을 짜는데 많은 시간과 공을 들이는데, 혼공학습단에서는 도서별 커리큘럼을 제공해 주셔서 계획 부분에 대한 걱정이 없어서 좋았습니다. 특히 처음 공부하는 내용인 만큼 어디를 어떻게 얼마나 공부해야 할지 감이 잘 안 잡혔는데 제공되는 커리큘럼을 통해서 '아! 이 부분이 어렵고 많이 중요하니까 한 챕터로만 일주일간 공부하겠지?' 이런 식으로 미리 예상할 수 있는 점도 좋았습니다. 그리고 학습하면서 매주 블로그 글을 쓰는 점도 좋았습니다. 저는 전공수업에서 배웠던 내용을 종강 이후 작성하거나 백준에서 풀었던 문..

[혼공학습단 10기☕️] 자바 week6

미션기본미션 : 입출력 스트림 요약 정리하여 포스팅하기아래 글을 확인해주세요! 선택미션 : p. 632 문제 2번 풀고, 풀이 과정 설명하기답 코드 : FileReader fr = new FileReader(filePath); BufferedReader br = new BufferedReader(fr); int rowNum = 1; while (true) { String data = br.readLine(); if (data == null) break; System.out.println(rowNum++ + ": " + data); } br.close(); 설명 : 1~2번 줄을 통해 문자 기반 입력 스트림을 얻고, BufferedReader 보조스트림에 연결합니다. rowNum 변수는 라인 번호를 표시하..

독학/[책] 자바 2023.08.15