분류 전체보기
-
👩🏻💻컴퓨터 시스템 하드웨어 1. 중앙 처리 장치(CPU) 인간의 두뇌에 해당 주기억장치에서 프로그램 명령어와 데이터를 읽어와 처리하고 명령어의 수행 순서를 제어 중앙처리장치의 구성: 산술논리연산장치 ALU(비교와 연산을 담당), 제어장치(명령어의 해석과 실행을 담당), 레지스터(속도가 빠른 데이터의 기억장치) 2. 기억 장치 프로그램, 데이터, 연산의 중간결과를 저장하는 장치 주기억장치와 보조기억장치로 나누어지며, RAM(기억 장치의 기억 내용을 임의로 읽거나 변경할 수 있는 기억 소자)과 ROM(읽기/쓰기가 모두 가능한 기억장치)도 이곳에 해당 보조기억장치는 하드디스크 등을 말하며, 주기억장치에 비해 속도는 느리지만 많은 자료를 영구적으로 저장 가능 3. 입출력 장치 입력장치: 컴퓨터 내부로 자료를..
[CS] 컴퓨터의 구성👩🏻💻컴퓨터 시스템 하드웨어 1. 중앙 처리 장치(CPU) 인간의 두뇌에 해당 주기억장치에서 프로그램 명령어와 데이터를 읽어와 처리하고 명령어의 수행 순서를 제어 중앙처리장치의 구성: 산술논리연산장치 ALU(비교와 연산을 담당), 제어장치(명령어의 해석과 실행을 담당), 레지스터(속도가 빠른 데이터의 기억장치) 2. 기억 장치 프로그램, 데이터, 연산의 중간결과를 저장하는 장치 주기억장치와 보조기억장치로 나누어지며, RAM(기억 장치의 기억 내용을 임의로 읽거나 변경할 수 있는 기억 소자)과 ROM(읽기/쓰기가 모두 가능한 기억장치)도 이곳에 해당 보조기억장치는 하드디스크 등을 말하며, 주기억장치에 비해 속도는 느리지만 많은 자료를 영구적으로 저장 가능 3. 입출력 장치 입력장치: 컴퓨터 내부로 자료를..
2023.05.28 -
5월 26일~27일 무박 2일간 진행하는 해커톤 개발 부문으로 대회에 참가하였다. 해커톤 대회는 처음이라 도움이 되지 못할까봐 긴장도 되고 해내지 못하진 않을까 걱정도 됐었다. 가서 간단한 멘토님들의 강의들도 듣고 바로 팀별로 모여 약 10시간동안 한 프로젝트를 구현해내야했다. 우리 팀은 Give & Get 이라는 앱을 기획하였다. 아나바다를 목적으로 기부할 물품을 올리고 그 대가로 하트를 받는다. 자신이 받은 하트로는 기부받고 싶은 물품을 선택한 뒤 그 물품에 하트로 경매를 한다. 최고가로 경매를 한 사용자에게 낙찰이 되어 기부한 사용자에게 기부 물품을 받을 수 있도록 채팅이 연결되는 앱이다. 10시간 안에 기획, 구현, 발표까지 하기에 시간이 너무 빠듯했다. 최대한 구현에 시간을 투자하고 싶어 UI도..
[해커톤] 실리콘밸리 테크 해커톤 대회 2023 후기5월 26일~27일 무박 2일간 진행하는 해커톤 개발 부문으로 대회에 참가하였다. 해커톤 대회는 처음이라 도움이 되지 못할까봐 긴장도 되고 해내지 못하진 않을까 걱정도 됐었다. 가서 간단한 멘토님들의 강의들도 듣고 바로 팀별로 모여 약 10시간동안 한 프로젝트를 구현해내야했다. 우리 팀은 Give & Get 이라는 앱을 기획하였다. 아나바다를 목적으로 기부할 물품을 올리고 그 대가로 하트를 받는다. 자신이 받은 하트로는 기부받고 싶은 물품을 선택한 뒤 그 물품에 하트로 경매를 한다. 최고가로 경매를 한 사용자에게 낙찰이 되어 기부한 사용자에게 기부 물품을 받을 수 있도록 채팅이 연결되는 앱이다. 10시간 안에 기획, 구현, 발표까지 하기에 시간이 너무 빠듯했다. 최대한 구현에 시간을 투자하고 싶어 UI도..
2023.05.27 -
이 문제는 bfs를 활용하여 풀었다. 👩🏻💻 코드 구현 from collections import deque m, n = map(int, input().split()) graph = [list(map(int, input().split())) for _ in range(n)] queue = deque([]) dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] day = 0 for i in range(n): for j in range(m): if graph[i][j] == 1: queue.append([i, j]) def bfs(): while queue: x, y = queue.popleft() for i in range(4): nx, ny = dx[i] + x, dy[i] + y if 0
[백준 문제풀기] #7576번 - 토마토 with Python이 문제는 bfs를 활용하여 풀었다. 👩🏻💻 코드 구현 from collections import deque m, n = map(int, input().split()) graph = [list(map(int, input().split())) for _ in range(n)] queue = deque([]) dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] day = 0 for i in range(n): for j in range(m): if graph[i][j] == 1: queue.append([i, j]) def bfs(): while queue: x, y = queue.popleft() for i in range(4): nx, ny = dx[i] + x, dy[i] + y if 0
2023.05.23 -
💡 다익스트라 알고리즘 그래프에서 특정 노드에서 출발하여 다른 모든 노드로 가는 각각의 최단 경로를 구해주는 문제 매번 최단 경로의 정점을 선택하여 탐색 반복 🌱 다익스트라 알고리즘 특징 도착노드는 해당 노드를 거쳐 다른 노드로 가는 길을 찾을 필요가 없다. 다익스트라 알고리즘은 가중치가 양수일 때만 사용 가능하다. ☝ 동작 단계 1. 출발노드와 동작노드 설정해주고 최단 거리 테이블을 초기화해준다. 2. 현재 위치에서의 인접한 노드들 중에서 방문하지 않은 노드 중 거리가 가장 짧은 노드를 선택한 뒤, 방문 처리 해준다. 3. 해당 노드에서 다른 노드로 넘어가는 간선 비용(가중치)를 계산하여 최단 거리 테이블을 업데이트 해준다. 4. 3~4번 과정 반복 - 최단 거리 테이블 : 1차원 배열로 N개 노드까지..
[알고리즘] 다익스트라(dijkjstra) 알고리즘이란? with Python💡 다익스트라 알고리즘 그래프에서 특정 노드에서 출발하여 다른 모든 노드로 가는 각각의 최단 경로를 구해주는 문제 매번 최단 경로의 정점을 선택하여 탐색 반복 🌱 다익스트라 알고리즘 특징 도착노드는 해당 노드를 거쳐 다른 노드로 가는 길을 찾을 필요가 없다. 다익스트라 알고리즘은 가중치가 양수일 때만 사용 가능하다. ☝ 동작 단계 1. 출발노드와 동작노드 설정해주고 최단 거리 테이블을 초기화해준다. 2. 현재 위치에서의 인접한 노드들 중에서 방문하지 않은 노드 중 거리가 가장 짧은 노드를 선택한 뒤, 방문 처리 해준다. 3. 해당 노드에서 다른 노드로 넘어가는 간선 비용(가중치)를 계산하여 최단 거리 테이블을 업데이트 해준다. 4. 3~4번 과정 반복 - 최단 거리 테이블 : 1차원 배열로 N개 노드까지..
2023.05.22 -
새로운 오류가 떴다. 기존에 주요 코드들만 가져와보았다. server3.getPetRegister(textuser).enqueue(object :retrofit2.Callback{ @RequiresApi(Build.VERSION_CODES.O) override fun onResponse(call: Call?, response: Response){ Log.d("반려동물 리스트", "" + response.body().toString()) Log.d("개수", response.body()?.result?.size!!.toString()) // 서버에서 가져온 데이터의 개수만큼 반복문을 실행합니다 for (i in 0 until (response.body()?.result?.size!!)) { val name..
[안드로이드] java.lang.nullpointerexception: attempt to invoke virtual method 'void android.widget.imageview.setimageresource(int)' on a null object reference새로운 오류가 떴다. 기존에 주요 코드들만 가져와보았다. server3.getPetRegister(textuser).enqueue(object :retrofit2.Callback{ @RequiresApi(Build.VERSION_CODES.O) override fun onResponse(call: Call?, response: Response){ Log.d("반려동물 리스트", "" + response.body().toString()) Log.d("개수", response.body()?.result?.size!!.toString()) // 서버에서 가져온 데이터의 개수만큼 반복문을 실행합니다 for (i in 0 until (response.body()?.result?.size!!)) { val name..
2023.05.19 -
https://www.acmicpc.net/problem/5639 5639번: 이진 검색 트리 트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다 www.acmicpc.net ⚠️ 문제 ✍ 풀이 전위 순회순으로 입력된다. ( 루트 노드 -> 왼쪽 자식노드 -> 오른쪽 자식 노드 ) 전위 순회는 첫 번째 입력되는 값은 항상 최상단의 루트 노드일 것이다. 그 후 두번째 값부턴 최상단 루트 노드를 기준으로 왼쪽 자식 노드일 것이다. 이때 문제에서 주어진 이진 트리는 왼쪽 서브 트리가 루트 노드보다 작고, 오른쪽 서브 트리는 루트 노드보다 크다는 것이다. 즉, 최..
백준 문제풀기 [#5639번] - 이진 검색 트리 with Pythonhttps://www.acmicpc.net/problem/5639 5639번: 이진 검색 트리 트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다 www.acmicpc.net ⚠️ 문제 ✍ 풀이 전위 순회순으로 입력된다. ( 루트 노드 -> 왼쪽 자식노드 -> 오른쪽 자식 노드 ) 전위 순회는 첫 번째 입력되는 값은 항상 최상단의 루트 노드일 것이다. 그 후 두번째 값부턴 최상단 루트 노드를 기준으로 왼쪽 자식 노드일 것이다. 이때 문제에서 주어진 이진 트리는 왼쪽 서브 트리가 루트 노드보다 작고, 오른쪽 서브 트리는 루트 노드보다 크다는 것이다. 즉, 최..
2023.05.17 -
💡트리 순회(Tree traversal) 트리의 모든 노드를 한 번씩 방문하는 것을 말한다. 데이터를 어떤 순서로 볼 것이냐에 따라서 전위순회, 중위순회, 후위순회로 나눠진다. ☝전위 순회 루트 노드 -> 왼쪽 자식노드 -> 오른쪽 자식노드 1. 루트 노드 A에서부터 시작, A가 루트 노드이므로 A 먼저, A 기준으로 봤을 때 왼쪽 자식노드는 B이므로 B 방문. 2. B로 와서 B가 다시 루트 노드라고 생각하면 B의 왼쪽 자식노드는 C이므로 C를 방문. 3. C의 왼쪽 자식노드, 오른쪽 자식노드가 없기 때문에 다시 B의 오른쪽 노드인 D를 방문. 4. D가 방문할 수 있느 노드가 없기 때문에 B로 다시오면 B에서 방문할 수 있는 노드는 이미 방문완료. 따라서 A의 오른쪽 자식노드 E 방문. 5. E의 왼..
[자료구조] 트리 순회 (+코드 구현 with Python)💡트리 순회(Tree traversal) 트리의 모든 노드를 한 번씩 방문하는 것을 말한다. 데이터를 어떤 순서로 볼 것이냐에 따라서 전위순회, 중위순회, 후위순회로 나눠진다. ☝전위 순회 루트 노드 -> 왼쪽 자식노드 -> 오른쪽 자식노드 1. 루트 노드 A에서부터 시작, A가 루트 노드이므로 A 먼저, A 기준으로 봤을 때 왼쪽 자식노드는 B이므로 B 방문. 2. B로 와서 B가 다시 루트 노드라고 생각하면 B의 왼쪽 자식노드는 C이므로 C를 방문. 3. C의 왼쪽 자식노드, 오른쪽 자식노드가 없기 때문에 다시 B의 오른쪽 노드인 D를 방문. 4. D가 방문할 수 있느 노드가 없기 때문에 B로 다시오면 B에서 방문할 수 있는 노드는 이미 방문완료. 따라서 A의 오른쪽 자식노드 E 방문. 5. E의 왼..
2023.05.17 -
레트로핏을 활용하여 서버에서 받은 응답 리스트 개수에 따라서 동적으로 레이아웃을 설정해주려고 한다. acativity_main.xml 레이아웃을 추가 할 부모 레이아웃을 먼저 만들어줍니다. 부모 레이아웃은 id는 petLayout으로 설정했습니다. activity_sub.xml SubActivity는 부모 레이아웃안에 동적으로 생성할 레이아웃을 정의해줍니다. id는 childPetLayout으로 설정했습니다. MainActivity.Kt 파일 서버에서 응답 받은 결과 개수에 따라 for문을 반복합니다. 데이터를 0번째부터 받은 뒤 createLayout이라는 함수에 데이터를 보내주어 레이아웃을 생성하면서 그 레이아웃에 받아온 데이터를 입력해준다. petLayout.addView(createLayout) ..
[android] 동적으로 레이아웃 생성하기 with Kotlin레트로핏을 활용하여 서버에서 받은 응답 리스트 개수에 따라서 동적으로 레이아웃을 설정해주려고 한다. acativity_main.xml 레이아웃을 추가 할 부모 레이아웃을 먼저 만들어줍니다. 부모 레이아웃은 id는 petLayout으로 설정했습니다. activity_sub.xml SubActivity는 부모 레이아웃안에 동적으로 생성할 레이아웃을 정의해줍니다. id는 childPetLayout으로 설정했습니다. MainActivity.Kt 파일 서버에서 응답 받은 결과 개수에 따라 for문을 반복합니다. 데이터를 0번째부터 받은 뒤 createLayout이라는 함수에 데이터를 보내주어 레이아웃을 생성하면서 그 레이아웃에 받아온 데이터를 입력해준다. petLayout.addView(createLayout) ..
2023.05.16