백준 2178번 미로 탐색 - SWIFT
Algorithm/BOJ PS2024. 5. 2. 00:51백준 2178번 미로 탐색 - SWIFT

문제N×M크기의 배열로 표현되는 미로가 있다.101111101010101011111011 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성하시오. 한 칸에서 다른 칸으로 이동할 때, 서로 인접한 칸으로만 이동할 수 있다.위의 예에서는 15칸을 지나야 (N, M)의 위치로 이동할 수 있다. 칸을 셀 때에는 시작 위치와 도착 위치도 포함한다. 입력첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. 출력첫째 줄에 지나야 하는 최소의..

2024/04/22 - 2024/04/28 일기
이모저모/일기2024. 5. 2. 00:412024/04/22 - 2024/04/28 일기

2024/04/22 : 포트폴리오본격적으로 포트폴리오를 작성하기 시작했다.사실 이전에 지원했던 회사는 포트폴리오 없이 단순 서류만으로도 합격했었는데, 그때는 걍 아 첫번째 지원인데 안되면 말고~ 이런 느낌이었어서 별 생각이 없었다...근데 이제 지원할 다른 회사엔 조금 확실하게 서류합을 해야할거 같아서 포트폴리오를 만들기로 했다. 처음엔 대강 이렇게 만들었는데 너무 오밀조밀이라... 가독성이 떨어진다... 그와중에 친구 평가  2024/04/23 : 포켓몬스터 하트골드포켓몬스터 에메랄드를 다 깨고, 포켓몬스터 오메가 루비를 하려고 3DS 에뮬레이터까지 구했는데 게임 키고 한 3분 하다가 껐다.약간 게임이... 너무 조화롭지 않다고 해야하나... 똥겜 스멜이 좀 쎄해서... 걍 명작 하트골드로 넘어갔다. ..

백준 1991번 트리 순회 - SWIFT, C++
Algorithm/BOJ PS2024. 4. 28. 20:08백준 1991번 트리 순회 - SWIFT, C++

문제이진 트리를 입력받아 전위 순회(preorder traversal), 중위 순회(inorder traversal), 후위 순회(postorder traversal)한 결과를 출력하는 프로그램을 작성하시오.  예를 들어 위와 같은 이진 트리가 입력되면,전위 순회한 결과 : ABDCEFG // (루트) (왼쪽 자식) (오른쪽 자식)중위 순회한 결과 : DBAECFG // (왼쪽 자식) (루트) (오른쪽 자식)후위 순회한 결과 : DBEGFCA // (왼쪽 자식) (오른쪽 자식) (루트)가 된다. 입력첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파벳 ..

백준 1992번 쿼드트리 - SWIFT
Algorithm/BOJ PS2024. 4. 28. 20:05백준 1992번 쿼드트리 - SWIFT

문제흑백 영상을 압축하여 표현하는 데이터 구조로 쿼드 트리(Quad Tree)라는 방법이 있다. 흰 점을 나타내는 0과 검은 점을 나타내는 1로만 이루어진 영상(2차원 배열)에서 같은 숫자의 점들이 한 곳에 많이 몰려있으면, 쿼드 트리에서는 이를 압축하여 간단히 표현할 수 있다.주어진 영상이 모두 0으로만 되어 있으면 압축 결과는 "0"이 되고, 모두 1로만 되어 있으면 압축 결과는 "1"이 된다. 만약 0과 1이 섞여 있으면 전체를 한 번에 나타내지를 못하고, 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래, 이렇게 4개의 영상으로 나누어 압축하게 되며, 이 4개의 영역을 압축한 결과를 차례대로 괄호 안에 묶어서 표현한다. 위 그림에서 왼쪽의 영상은 오른쪽의 배열과 같이 숫자로 주어지며, 이 영상을 쿼..

2024/04/15 - 2024/04/21 일기
이모저모/일기2024. 4. 22. 20:192024/04/15 - 2024/04/21 일기

오랜만에 일기 작성 엄청나게 오랜만에 일기를 쓴다. 거의 일주일만에 일기 작성... 전엔 매일매일 쓰더니 일기를 왜 매일 안쓰냐는 질문을 꽤 받았는데... 그에 대한 몇가지 변명을 써볼까 한다. 첫번째 이유 : 애초에 일기 블로그가 아님 애초에 내 블로그는 일기 블로그가 아니고 일기 컨텐츠는 나의 갓생을 위한... 이제는 위했던... 컨텐츠일 뿐 핵심 요소가 아니다. 한동안 일기가 프로그래밍 글보다 인기가 많아서 슬펐지만 최근에는 일기보다 프로그래밍 조회수가 더 잘나오고 있다. 사실 프로그래밍 조회수가 잘 나온다기 보단 일기 조회수가 빠지면서 프로그래밍 조회수만 나오는 상황이지만... 어쨌거나 내 블로그는 일기 블로그가 아니다! 두번째 이유 : 요즘 영화를 안봄 일기를 쓰는 이유 중 하나가 매일 영화 한..

백준 1987번 알파벳 - SWIFT
Algorithm/BOJ PS2024. 4. 19. 15:49백준 1987번 알파벳 - SWIFT

문제 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으로 이동할 수 있는데, 새로 이동한 칸에 적혀 있는 알파벳은 지금까지 지나온 모든 칸에 적혀 있는 알파벳과는 달라야 한다. 즉, 같은 알파벳이 적힌 칸을 두 번 지날 수 없다. 좌측 상단에서 시작해서, 말이 최대한 몇 칸을 지날 수 있는지를 구하는 프로그램을 작성하시오. 말이 지나는 칸은 좌측 상단의 칸도 포함된다. 입력 첫째 줄에 R과 C가 빈칸을 사이에 두고 주어진다. (1 ≤ R,C ≤ 20) 둘째 줄부터 R개의 줄에 걸쳐서 보드에 적혀 있는 C개의 대문자 알파벳들이 빈칸 없이 주어진다. 출력..

백준 1967번 트리의 지름 - SWIFT
Algorithm/BOJ PS2024. 4. 18. 18:51백준 1967번 트리의 지름 - SWIFT

문제 트리(tree)는 사이클이 없는 무방향 그래프이다. 트리에서는 어떤 두 노드를 선택해도 둘 사이에 경로가 항상 하나만 존재하게 된다. 트리에서 어떤 두 노드를 선택해서 양쪽으로 쫙 당길 때, 가장 길게 늘어나는 경우가 있을 것이다. 이럴 때 트리의 모든 노드들은 이 두 노드를 지름의 끝 점으로 하는 원 안에 들어가게 된다. 이런 두 노드 사이의 경로의 길이를 트리의 지름이라고 한다. 정확히 정의하자면 트리에 존재하는 모든 경로들 중에서 가장 긴 것의 길이를 말한다. 입력으로 루트가 있는 트리를 가중치가 있는 간선들로 줄 때, 트리의 지름을 구해서 출력하는 프로그램을 작성하시오. 아래와 같은 트리가 주어진다면 트리의 지름은 45가 된다. 트리의 노드는 1부터 n까지 번호가 매겨져 있다. 입력 파일의 ..

2024/04/08 - 2024/04/14 일기
이모저모/일기2024. 4. 14. 23:202024/04/08 - 2024/04/14 일기

2024/04/08 : 블로그 글 작성 멘토링 과제 만들 겸 블로그에 글을 작성했다. [Flutter][Widget] CustomPaint로 나만의 위젯 만들기 개요 Flutter에서는 상당히 많은 기본 위젯들을 제공해준다. Container, Column, Row, Stack, ListView 등등... 많은 기본 위젯들을 제공해준다. 기본 위젯들을 잘 조합하여 새로운 위젯을 만들 수 있지만, 때 noguen.com 내용이 항상 길어져서 문제... 그래서 재밌게 보라고 삽화도 하나 추가했다. 재밌어 할 지는 모름...ㅎ 매일 작성하는건 힘들어 전에는 매일 작성했는데, 요새는 나갔다오면 피곤해져서 일기를 쓰고 잘 힘이 없다... 전보다 자주 나가게 되니까 그런거 같다. 나가면 사진 찍을 시간도 없어서 일..

백준 1920번 수 찾기 - SWIFT
Algorithm/BOJ PS2024. 4. 10. 22:09백준 1920번 수 찾기 - SWIFT

문제 N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다. 출력 M개의 줄에 답을 출력한다. 존재하면 1을, 존재하지 않으면 0을 출력한다. 문제 링크 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2]..

[Flutter][Widget] CustomPaint로 나만의 위젯 만들기
Flutter/Widget2024. 4. 8. 20:35[Flutter][Widget] CustomPaint로 나만의 위젯 만들기

개요 Flutter에서는 상당히 많은 기본 위젯들을 제공해준다. Container, Column, Row, Stack, ListView 등등... 많은 기본 위젯들을 제공해준다. 기본 위젯들을 잘 조합하여 새로운 위젯을 만들 수 있지만, 때로는 기본 위젯의 조합으로도 만들 수 없는 위젯들을 만들어야할 때가 있다. ▼ 이럴 때는 우리가 따로 정의하여 사용을 해야하는데, 이를 도와주는 것이 `CustomPaint`다. CustomPaint를 통해 직접 위젯의 모양을 정의하여 새로운 형태의 위젯을 만들 수 있다. 들어가기 앞서 : 기본적인 좌표계에 대해서 들어가기 앞서 좌표계에 대해 알아야 한다. 이는 `CustomPaint`에서만 사용되는 것은 아니고 앱 전반적으로 다 사용되는 내용이다. 우리가 배웠던 좌표..

image