분류 전체보기 122

[C++] ICPC 25W 7회차 - 그래프, 트리, map/set

그래프: 정점의 집합과 간선의 집합으로 정의되는 이산수학의 추상적 구조정점: 어떠한 상태 or 위치 표현간선: 정점 사이의 관계나 연결성 표현ex) 지하철 노선도그래프의 종류모든 간선이 방향이 정해져 있지 않은 그래프하나의 간선으로 양방향으로 이동 가능방향이 정해져 있는 간선이 있는 그래프양방향 간선도 사실 방향이 있는 간선 두 개로 나눠서 생각해볼 수 있음간선에 가중치가 있는 그래프가중치: 간선 이용하는 비용일상예시: 지도 상의 여러 위치를 정점으로, 정점들 사이의 경로를 간선으로 잡으면 경로의 소요시간을 가중치로 모델링 가능같은 집합의 두 정점이 간선으로 이어지지 않게끔 정점들을 두 집합으로 나눌 수 있는 그래프초록색 정점들을 하나의 집합으로 묶고 회색 정점들을 하나의 집합으로 묶을 수 있다.판별법정..

언어/C++ 2025.02.16

[C++] ICPC 25W 6회차 - 재귀 및 DnC(분할정복)

1. 재귀함수함수 안에서 함수 호출 가능. 자기 자신도 호출 가능 >> 재귀함수void f(int x){ // x=3 cout 위는 재귀함수의 예시. 실행과정을 따라가보면 이상한 점 발견 ! x= 3에서 시작한다고 가정재귀적으로 f(3)이 호출된 후 f(2)가 호출된 후 f(1)이 호출된 후,,, 함수가 종료되지 않음!따라서 재귀함수는 종료조건 또는 기저조건을 설정하는 것이 중요void f(int x){ // x=3 cout xvoid f(int x){ if(x두 예시를 합친 예시와 호출과정을 시각화한 그림. 재귀호출이 몇 번 중첩돼 있는지를 재귀깊이라 부르기도 한다.void f(int x){ cout   백트래킹재귀적으로 모든 경우의 수를 탐색하는 문제. 일반적으로 모든 경우의 수를 구하거나 이에 대해..

언어/C++ 2025.02.13

[C++] ICPC 25W 5회차 - 완전탐색, 이분탐색

1. bruteforce(무차별 대입공격)모든 경우에 대하여 조건에 맞는지 검사하는 방법더보기다음 연립방정식에서 x와 y의 값을 계산하시오.   ax+by=c dx+ey=f 각 칸에는 -999 이상 999 이하의 정수만 입력할 수 있다.식정리: ax + by = c , dx + ey = f , x = (c-by)/a로 구해두고 d(c-by)/a+ey = f , d(c-by) + ae , y = af y(ae-bd) = af-dc , y = (af-dc)/(ae-bd) 로 구할 수 있나?! --> 오류발생 !!y = (af-dc)/(ae-bd) 에서 ae-bd=0이라면 0으로 나누는 오류 발생, 이를 케어해줬다 해도 나누는 연산으로 인해 각종 억까 발생가능x와 y의 범위가 [-999,999]인 정수이므로 ..

언어/C++ 2025.02.11

[C++] ICPC 25W 4회차 - 누적합, 투포인터

prefix sum(누적합)배열에서 각 위치까지의 합을 미리 계산하는 기법f(i) = 구간 [1,i]의 원소를 합친 값알아볼 것우리가 원하는 것을 구할 수 있는가이걸 구하는 것은 효율적인가f(1)부터 f(n)까지 모두 구했다고 가정 -> 문제에서 요구하는 구간[i,j]에 속하는 원소들의 합을 구해야 함.f(j)-f(i-1)로 구할 수 있음f(1)부터 f(n)까지 구하려면 1+2+...+n번 연산해야돼서 나이브(별 다른 처리를 하지 않다)하게 구하면 O(N^2) but 최적화를 통해 O(N)으로 만들기f(i)=구간 [1,i]의 원소의 합 ---> f(i-1)=구간 [1,i-1]의 원소 합.f(i-1)을 안다면 f(i)=f(i-1)+A[i]로 O(1)만에 구할 수 있다.f(1)=A[1]이므로 이도 O(1)이..

언어/C++ 2025.02.04

[C++] ICPC 25W 2회차 - 선형자료구조, 제곱정렬

1. 제곱정렬정렬 알고리즘원소들을 번호순이나 사전순서와 같이 일정한 순서대로 열거하는 알고리즘아래 정렬 알고리즘들은 O(n^2)에 대해 동작1.1 버블정렬(Bubble Sort)void bubblesort(int A[],int N){ bool swapped = true; while(swapped){ swapped = false; for(int i=1; i첫번째 실행에 가장 큰 원소 정렬i번째 실행에는 i번째로 가장 큰 원소 정렬최악의 경우 N-1번째 실행에 N-1번째로 가장 큰 원소 정렬. 가장 작은 원소 또한 맨 앞에 위치 --> 바깥쪽 while문이 최대 N-1번 실행 -- 시작 배열이 역순으로 정렬되어 있을 때 해당안쪽반복문에 대한 최악의 경우: 바깥쪽 반복문의 모든 i번째 실행에서 i번째..

언어/C++ 2025.01.30

[팀프로젝트] eco bite - 1인가구를 위한 식재료 공유 플랫폼 개발

Intro6명의 팀원이 HCI (인간과 컴퓨터 상호작용) 을 주제로 앱 프로젝트를 진행했다. 나의 기여도: 30%  (100/6 + 플러스기여도)4개월동안 모두가 많은 시간을 투자하고 열심히 준비하여 만들어낸 결과물이다. Notion을 주로 활용하여 일정을 게시하고 자료와 각자 맡은 파트 결과물을 공유하였다.     이런 식으로 노션을 활용하였다.    총 3번의 발표(1번 참여)와 사전설문조사(참여-질문제작,배포), 유즈케이스제작(참여-제작), 피그마제작(참여-제작), 베타테스트(참여-질문제작), 팀내검증(참여-검증표제작, 검증참여), 컨셉영상제작(참여-시나리오 제작), 제품개발제안서(직접 참여하지는 않았지만 사용된 자료제작에는 참여)까지 완료했고, 앱 개발은 피그마 구현까지 완료했다.     1인가구..

[팀프로젝트] 에이닷 프롬프트 공모전

팀원: 3명나의역할: (조장)  주제설정,  PPT제작, 프롬프트 기획, 프롬프트 검증, 설문조사 제작+배포, 노션 운영 등 전반적인 업무2024.11~2024.12 진행 인스타그램과 유튜브 숏츠에 종종 보이는 '프롬프트'. 프롬프트가 대체 뭔가 했더니, AI에게 보다 효과적인 답을 얻기 위해 쓰이는 입력틀 과 같은 거라 한다. 그리고 에이닷 프롬프트 공모전을 발견했다. 지피티를 자주 이용하는 나로서 내가 직접 프롬프트를 만들고 검증해본다면 앞으로 AI 사용을 더욱 효과적으로 할 수 있을 뿐 아니라 AI의 입력-분석-실행구조에 대해 직관적으로 알 수 있을것이라 생각해 팀원들을 모집하여 공모전(사실 공모전보다는 서포터즈와 가까운 느낌)에 참가하기로 결정했다!!1. 에이닷 팀소개_aDaptics 의 일부 p..

[팀프로젝트] '모두의 지도' 앱 설계 (소프트웨어융합창의설계)

팀 구성원 수 : 4명나의 역할: 앱 기획, 앱 기능 설정, 검증,  activity diagram 제작, conceptvideo 촬영 편집, 발표, storyboard 제작, ppt디자인 등 전반적인 역할 담당2022.03~2022.06 진행 Intro나의 첫 앱 설계이자 첫 공식적 팀플이었다. 그만큼 공유문서도 처음 작성해보고, 밤을 새기도 하는 등 여러 좌충우돌이 많았던 경험이다. 또 처음으로 user journey map, activity diagram, storyboard와 같은 설계의 기본을 접하였고 여기에 매우 큰 흥미를 느꼈다. 나의 장점인 창의력을 이러한 기획설계에서 써먹을 수 있겠다는 생각에 희망에 부풀었던 학기이기도 하다. 사이트를 이용하여 차근차근 journey를 그려나가는 과정이 ..

[개인프로젝트] Portfolio webpage 만들기 - 클론코딩, HTML/CSS 이용

2024.02~2024.03 진행      INTRO2024년 2월 10일, 골절로 독일 방문학생 일정이 3월 초에서 5월 초로 미뤄졌다. 퇴원해서 시간을 유용히 보낼 방법을 찾다가 평소에 관심있던 Webprogramming에 도전해보기로 했다. 처음부터 혼자 하기보다는 코딩과정의 전반적 흐름을 알고 싶어 유튜브 코딩강의를 참고했다.참고한 코딩강의는 성균관대생의 웹프로그래밍 나만의 포트폴리오 만들기 강의였다. 대단하다.. 나도 나중에 실력을 키워서 직접 강의를 해 봐야지 !   Code기본적인 html코드 뿐만 아니라 글자에 마우스 커서를 올려놓으면 글자 색이 변하는 등 효과를 낼 수 있는 CSS 코드도 활용했다. 후에 더 구체화시켜서 정말 나의 포트폴리오 사이트로 활용해야겠다. 코드를 첨부하겠다. in..