[sw 정글] 5/02 TIL c언어 및 Linked-list, 이진검색트리
·
지난 글 모음
C언어 공부내용 union 구조체와 비슷하며 메모리를 공유한다. 메모리를 공유하기 때문에 유니온은 멤버변수를 한번에 하나씩만 사용가능하다. union student{ int age; double grade; } student의 age를 사용하고 있다면 grade를 사용할 수 없다. lvalue, rvalue 대입연산자 위치를 말한다. a = 10 a는 lvalue가 되고 10이 rvalue가 된다. 배열은 modifiable lvalue가 아니므로 대입연산자의 왼쪽에 올 수 없다. 포인터 const int* pa = &a; *pa = 3; //올바르지 않은 문장 pa = &b // 올바른 문장 int* const pa = &a; *pa = 3 //올바른 문장 pa = &b; // 올바르지 않은 문장 co..
[week05] sw정글 사관학교 5주차 회고
·
지난 글 모음
week5 5주 차 회고 탐험 준비(3주) - c언어 1주 차 - RB트리 malloc-lab 웹서버 만들기 C언어의 시작 어려웠던 4주 차 DP, 그리디를 끝으로 알고리즘 주차가 종료되었다. 이제부터 본격적으로 C언어를 사용하는 주차가 되었다. 알고리즘에서 사용한 파이썬이 얼마나 편한 언어인지 몸소 느낄 수 있는 주차였다. 포인터, 동적 메모리 할당 등 파이썬에서는 신경 쓰지 않아도 되는 것을 하나하나 신경 쓰면서 작성해야 했고 그러한 부분에서 많은 에러가 발생했다. 전공 때 배웠던 c언어를 다시 상기시키고 c언어를 손에 익힐 겸 링크드 리스트와 이진 검색 트리를 구현하고 RB트리 구현으로 넘어갔다. 해당 내용은 정리해서 코드와 함께 올릴 예정이다. RB트리 구현을 앞두고 있다면 한번 연습하고 들어가는..
[week03 & week04] 3,4 주차 sw정글 회고
·
지난 글 모음
알고리즘 week03 그래프(vertex, edge, node, arc) BFS DFS 위상 정렬 알고리즘 week04 동적 프로그래밍 (DP) 그리디 프로그래밍 3주 차를 지나 4주 차 3 주자는 그래프와 BFS, DFS, 위상 정렬이었다. 위상 정렬은 3주 차를 통해 개념을 새로 배우게 되었고 BFS, DFS, 그래프는 정글을 입소하기 전에 공부를 하여 알고 있던 개념이였다. 알고있던 개념도 있었고 BFS, DFS는 문제의 유형만 파악한다면 어떻게 문제에 대해서 접근해야할지 느낌이 와서 풀어볼만 했다. 정글에서 과제로 준 문제도 모두 풀어보았고 팀원과의 모의시험을 진행하여 3주차 시험은 3문제를 모두 맞을 수 있었다. 3주 차에서 문제도 모두 풀었고 시험도 다 맞아서 4주 차가 시작되고 자심감이 많이..
[백준 python] 1432번 그래프 수정
·
지난 글 모음
[백준 python] 1432번 그래프 수정 레벨: 플레티넘5 언어: 파이썬 📑풀이 과정 이 문제는 정글 ㅇㅎㅈ님의 설명을 듣고 이해한 문제이다. 감사합니다ㅎㅎ V1 → V2로 연결된 간선이 있을때, V2의 번호는 V1보다 커야한다. 위 조건으로 간선의 번호를 바꾸면 위상정렬 시 노드의 번호 순서(오른차순)으로 나와야한다는 말이다. 문제에 대한 이해 예시) 1번 그림 표현 위 예시를 위상정렬하면 1 2 4 5 3 이 나오고 위 예시를 위상 정렬시 1 2 3 4 5 로 출력하려면 아래와 같이 노드를 바꾸면 된다. 첫번째 그림의 노드위치가 아래로 바뀌면서 1 → 1 2 → 2 3 → 5 4 → 3 5 → 4 으로 바뀌게 되고 예시 답인 1 2 5 3 4 가 나오게 된다. 그리고 그래프에서 사이클이 발생하면 ..
[백준 python] 10000번 원 영역
·
지난 글 모음
[백준 python] 10000번 원 영역 레벨: 플레티넘5 언어: 파이썬 https://www.acmicpc.net/problem/10000 📑풀이 과정 일단 이 문제는 풀이과정을 다른 사람 블로그를 보고 아이디어를 얻어서 풀이했다. https://polohee81.tistory.com/51 초기 풀이 아이디어를 보고 싶은 사람은 위의 주소로 접소해서 읽어보길 바란다. 핵심 풀이 아이디어 x선에 접하는 원의 경계선을 괄호로 생각하고 풀이 위의 원을 괄호로 변환하면 (( )( )) 라고 볼 수 있다. 이 때 안의 원 두개가 사이 공간없이 이어져 있으면 밖의 원의 영역은 2개가 된다. 아래의 사진은 원과의 사이가 벌어져 있어 밖의 원의 영역이 1개이다. 괄호로 변환하면 (( ) ( ) ) 라고 볼 수 있다..
[week02] SW정글 2주 차 회고
·
지난 글 모음
[week02] SW정글 2주 차 회고 알고리즘 주차 week02 주제 이분 탐색 분할 정복 스택 큐 우선순위 큐 새로운 알고리즘 주차의 시작 정글에서 한 주의 시간은 목요일 목요일마다 새로운 주제가 나오고 새로운 팀원을 만난다. 지난 한 주 동안 함께 했던 팀원과 떨어지지만 새로운 팀원을 만나는 설렘이 있다. 이 글을 올리는 일요일은 알고리즘 문제를 푼지 4일이 지났다. 확실히 지난 주 보다 난이도가 많이 올랐고 문제 하나 당 푸는 시간이 지난주 보다 배로 걸리는 기분이다. 백준에서 한번도 손댄 적 없는 난이도의 문제가 나오고 잘 몰랐던 개념이 주제로 나오기 시작했다. 어려운 문제들이 나오면서 알고리즘 풀이 방법에 대해 고민을 많이 해봤다. 그리고 마침 팀원들이 공유해준 알고리즘 공부방법에 대한 글을 ..
[백준 python] 10819번 차이를 최대로 -재귀, 순열 풀이
·
지난 글 모음
[백준 python] 10819번 차이를 최대로 -재귀, 순열 풀이 레벨: 실버 1 언어: python 문제풀러가기 📑풀이 과정 재귀와 순열 각 다른 방식으로 풀어 보았다. 1번 재귀 n = int(input()) in_list = list(map(int ,input().split())) visited = [False]*n answer = 0 def sol(li): global answer if len(li) == n: total = 0 for i in range(n-1): total += abs(li[i]- li[i+1]) answer = max(answer, total) return for i in range(n): if not visited[i]: visited[i] = True li.append(..
[week00] sw정글 0주차 - 팀 프로젝트
·
지난 글 모음
week 00 팀 프로젝트 정글을 입소하면 0주 차를 시작한다. 0주 차의 목표는 아래와 같다 정글 프로그램의 취지를 이해하고, 입학시험에서 공부한 내용을 바탕으로 압축된 팀 프로젝트를 경험합니다. 단 시간 내에 팀원들과 몰입하여 성장하는 습관을 길러봅니다. 정글의 0주 차 목표에 걸맞게 3명의 팀원과 3박 4일 동안 팀 프로젝트를 진행한다. 프로젝트 주제는 입학시험에 배웠던 내용을 바탕으로 자유 주제로 진행한다. 팀 주제 정글 워들 기획의도 사람을 처음 만날 때 인사 다음으로 물어보는 것이 이름일 것이다. 하지만 인원도 많고 자주 보는 사람이 아니면 이름을 외우기가 쉽지 않다. 그래서 워들이란 게임을 통해 팀원의 이름을 맞추면서 외우면 더 쉽게 이름을 외울 수 있지 않을까 하는 생각에서 기획하게 되었다..