본문 바로가기

분류 전체보기

(110)
[내일배움캠프 25일차 TIL] 소프트웨어 설계 오늘 TIL 정리는 아래 링크에서!  소프트웨어 설계     블로그에 바로 써서 정리하다보니 생각보다 내용이 많아져서 노션에서 정리했다...강의에서 다룬 내용을 조금 더 자세히 정리하다보니 생각보다 많았다..!자료구조에 대한 내용도 적고 싶었는데 그러면 오늘 안에 끝내지 못할 것 같아 자료구조 내용을 뺐다,,ㅠㅠ자료구조 일부는 블로그에 따로 정리해 둔 것이 있으니 다루지 않았던 자료구조도 하나씩 정리해나가야 할 것 같다!
[내일배움캠프 24일차 TIL] 컴퓨터 구조와 운영체제 컴퓨터의 구성요소는 크게 기계적 요소인 하드웨어(Hardware)와 프로그램 요소인 소프트웨어(Software)로 나눌 수 있다 하드웨어 더보기메인보드와 시스템버스메인보드는 핵심 부품들이 정보를 주고받기 위해 연결시킨 판시스템버스는 핵심 부품들이 정보를 주고받는 통로이다주소 버스 : 주소를 주고 받는 통로데이터 버스 : 명령어와 데이터를 주고 받는 통로제어 버스 : 제어 신호를 주고받는 통로컴퓨터의 기계적 요소인 하드웨어에는 네 가지의 핵심 부품이 있다CPU(Central Processing Unit : 중앙처리장치)메모리에 저장된 명령어를 읽어들이고, 해석하고 실행한다CPU의 내부 장치 -> ALU, 레지스터, 제어장치ALU : 산술 논리 저장장치레지스터 : CPU 내부의 작은 임시 저장장치- 중앙처리..
[내일배움캠프 23일차 TIL] 백준 10989번 수 정렬하기 3, 16951번 미로 탐색 with python 백준 10989번 수 정렬하기 다들 생각하듯이 처음엔 sort()함수 사용했다가 메모리 초과가 떴다...이 문제를 풀기 위해서는 계수 정렬(Counting Sort)을 사용하는 방법이 있다계수정렬은 정렬 알고리즘 중 하나로, 특정 범위 내의 정수를 정렬할 때 매우 효과적인 알고리즘이다.주로 정수로 이루어진 배열을 정렬하는 경우에 사용된다 계수정렬은 다음과 같은 순서로 진행된다정렬하려는 배열의 최댓값을 기준으로 한 카운트 배열을 생성- 배열의 크기는 정렬하려는 배열의 최댓값+1이 된다카운트 배열을 사용하여 각 요소의 등장 횟수를 카운트하고 누적합을 구한다원래 배열을 순회하면서 각 요소를 카운트 배열을 참조하여 정렬된 위치에 배치한다 이러한 로직을 이용해서 코드를 작성하면 다음과 같다import sysN =..
[내일배움캠프 22일차 TIL] 백준 23885 비숍 투어 with python 백준 23885번 비숍 투어 문제는 다음과 같다 비숍은 대각선 방향으로만 움직일 수 있는데출발점과 도착점이 주어졌을 때 비숍이 출발점에서 도착점에 갈 수 있다면 "YES"를 출력하고갈 수 없다면 "NO"를 출력하는 문제이다  처음 이 문제를 마주했을때는 냅다 깊이 우선 탐색을 이용해서 풀었는데문제 조건에 체스판의 크기가 최대 10^9의 제곱이기 때문에실제로 제출했을 때 메모리 초과라는 결과를 받았다.... 그래서 열심히 체스판을 그려가며 알아낸 결과 색칠이 된 부분끼리 이동할 수 있고 색칠이 안 된 부분끼리 이동할 수 있다그래서 처음엔 거리를 계산해봤는데 별다른 규칙을 찾지 못했고 그 다음으로 시도한 방법이 좌표를 비교하는 방법이었다 그 결과 출발 위치와 도착위치의 x좌표와 y좌표의 값의 차이가모두 짝수..
[내일배움캠프 21일차 TIL] 백준 1012 유기농 배추 with python 오늘은 백준의 1012번 유기농 배추 문제이다문제는 다음과 같다 서로 인접해있는 배추가 몇 군데 퍼져있는가를 출력하는 문제이다이 문제 역시 탐색 문제로 bfs또는 dfs를 이용해서 풀 수 있다 BFS를 이용한 풀이-> 시간초과처음엔 bfs를 이용해서 문제를 풀었다. 먼저 bfs 함수를 다음과 같이 정의해주고 (함수 이름 소문자로 했어야 했는데)def BFS(field, que): while que: # 큐에 남은 좌표가 없을 때까지 now = que.popleft() # 먼저 들어온 것 부터 now_y, now_x = now[0], now[1] # y좌표, x좌표 field[now_y][now_x] = 0 # 현재 좌표를 0으로 바꾸기 for d i..
[내일배움캠프 04주차 WIL] 더보기The four Fs (참고링크)FACTS(사실, 객관) : 이번 일주일 동안 있었던 일, 내가 한 일FEELINGS(느낌, 주관) : 나의 감정적인 반응, 느낌FINDINGS(배운 것) : 그 상황으로부터 내가 배운 것, 얻은 것FUTURE(미래) : 배운 것을 미래에는 어떻게 적용할 지 제안, 글의 마무리는 스스로를 응원하는 말 한마디로때로는 힘들고, 좌절스러울 때도 있겠지만, 긍정적인 마무리로 스스로를 다독여주시면 좋겠습니다. 지난 일주일은 더 나은 다음주를 위한 발판이었으니까요!  TAKE 1이번주는 코드카타 -> 강의듣기 -> 점심 -> 팀 회의 -> 스쿼드 및 북극곰 팀 숙제풀기 / 스쿼드 문제풀이 / 강의듣기 -> 저녁 -> TIL 작성 -> 남은 숙제그냥 이 루틴의 반복이었다  TAK..
[내일배움캠프 20일차 TIL] 백준 2606 바이러스 with python - bfs/dfs 더보기어제 트리의 부모찾기 문제를 꽤나 고생하며 풀어서 그런지 오늘 문제는 비교적 쉽게 풀었다트리의 부모 찾기 문제보다 조금 더 정석적이고 쉬운 bfs/dfs라 그랬을지도...?오늘은 두 가지 방법으로 문제를 풀어보려고 한다!왜냐면 튜터님이 그러라고 했으니까... 백준 2606번 바이러스 문제는 다음과 같다 어제 문제와는 달리 비연결 그래프라는 것!그리고 부모 노드를 출력하는 것이 아닌 1번 노드에서부터 연결된 노드들을 출력하는 것이다조금 더 정석적인 깊이/넓이우선탐색 문제인 것이다어제는 재귀로 깊이우선탐색을 풀었으니 오늘은 스택을 이용해서 깊이우선탐색을그리고 큐를 이용해서 넓이우선탐색을 구현하고자 한다    스택을 이용한 깊이 우선 탐색(DFS : Depth First Search)문제에 나와있는 예시..
[내일배움캠프 19일차 TIL] 백준 11725 트리의 부모 찾기 with python 백준 11725번 트리의 부모 찾기 문제는 다음과 같다 문제는 간단해보이지만 이해하는데 시간이 좀 걸렸다잠깐 문제에 대한 이해를 해보자면  첫 번째 입출력이 위와 같을 때 예제 입력에 대한 트리의 모양은 다음과 같다이때2번 노드의 부모는 43번 노드의 부모는 64번 노드의 부모는 15번 노드의 부모는 36번 노드의 부모는 17번 노드의 부모는 4이므로 출력은 4 6 1 3 1 4가 되는 것이다.  1차 시도처음 이 문제를 받고 든 생각은 트리를 만드는데 상위 노드만 저장되도록 만들면 되는 것 아닌가? 하는 생각이었다 {1 : True,2 : 4 ,3 : 6 ,4 : 1 ,5 : 3 ,6 : 1,7 : 4} 이렇게 만들어서 for 문으로 tree[i]를 출력하자! 였다 생각한대로 코드를 짜고 트리가 생각한..