Algorithm
-
[ Algorithm ] 백준/Bronze/10813. 공 바꾸기 (바보비용)Algorithm/문제 풀이 2023. 4. 1. 19:29
하루입니다. https://www.acmicpc.net/problem/10813 10813번: 공 바꾸기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 바구니에는 공이 1개씩 들어있고, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 www.acmicpc.net 이 문제는 맨 윗 줄에 바구니의 갯수 n과 변경 횟수인 m을 한번에 준다. 5 8 이런 식으로. BufferedReader()를 사용하던 나는 StringTokenizer를 두 번 사용하고 싶지 않았기에 다음과 같은 식으로 코드를 짰다. int n = br.read() - 48; br.read(); int m = br.read() - 48; br.readLine(); 아니 그러니까 나는..
-
SW 문제해결 응용 - 구현 - 시작하기Algorithm/SWEA Learn 2023. 3. 31. 10:53
1. SW 문제 해결역량의 의미와 역량강화 방법을 설명할 수 있다. 2. 알고리즘의 필요성과 알고리즘의 성능 측정 방법 중 하나인 시간복잡도에 대해 설명할 수 있다. 3. 비트 수준의 연산과 자주 활용되는 표현을 설명할 수 있다. 4. 다양한 진법들과 이들 사이에 변환 방법을 설명할 수 있다. 5. 컴퓨터에서 실수 자료형의 표현과 특징을 설명할 수 있다. 1차. SW 문제 해결 프로그래밍하기 위한 제약 조건과 요구사항 프로그래밍 언어의 특성 프로그램이 동작할 HW와 OS에 대한 지식 사용자 대응 시간 제한 라이브러리의 유의 사항들 프로그램이 사용할 수 있는 최대 메모리 재사용성 높은 간결한 코드 문제 해결 과정 문제를 이해하자. 문제를 재정의하자. 고려사항을 정리하자. 문제 해결 방안을 마련하자. 계획에..
-
1231. [S/W 문제해결 기본] 9일차 - 중위순회Algorithm/문제 풀이 2023. 3. 30. 18:21
하루입니다. 문제 링크 https://swexpertacademy.com/main/learn/course/lectureProblemViewer.do 오늘 푼 문제는 나에게 큰 의미가 있다. 왜냐? 이론만 아는 게 아니라 실제로 사용해봐야 지식이 이어진다는 걸 다시 한 번 체감했기 때문이다. 자료구조 공부한 게 헛되지 않다는 걸 느끼기도 했고. 그래봤자 9일이긴 하지만 ^ㅁ^... 오늘 푼 문제는 Swea의 1231번 문제이다 . 값을 입력받아서 이진 트리를 구현하고, 중위 순회한 결과를 출력하는 문제이다. 처음엔 트리를 대체 어떻게 구현해야 하는지, 값을 어떻게 입력받고 담을지도 감이 오지 않아서 한참 고민하다 구글링을 했다. 원래는 트리와 포인터(현재 노드를 가리킴)를 구현해야 한다. 하지만 완전 이진..
-
SW 문제해결 기본 - TreeAlgorithm/SWEA Learn 2023. 3. 30. 16:50
1. Tree 자료구조의 개념과 기본 연산을 설명할 수 있다. 2. Binary Tree에 대해 알고 Binary Tree 순회 방법을 설명할 수 있다. 3. Expression Tree를 이해하고 설명할 수 있다. 4. Binary search Tree를 이해하고 기본 연산을 설명할 수 있다. 5. Heap에 대해 이해하고 기본 연산을 수행할 수 있다. Tree의 이해와 표현1. Tree의 특성 2. Tree의 구성요소 차수! 높이 Binary Tree모든 노드가 2개의 부트리를 가지고, 자식 노드를 2개까지만 가질 수 있다.자식노드를 왼쪽 자식 노드와 오른쪽 자식 노드라고 한다. Binary Tree의 종류 순회 (Traversal)Tree의 각 노드를 중복되지 않게 전부 방문하는 것이다.Tree는 ..
-
SW 문제해결 기본 - ListAlgorithm/SWEA Learn 2023. 3. 29. 08:59
하루입니다. 1차시 : List 2차시 : 삽입정렬 3차시 : 병합정렬 4차시 : List의 활용 1차시 : List List의 특성 순서를 가진 데이터의 집합을 가리키는 추상자료형 중복 데이터 가능 구현 방법에 따라 순차 List(배열 기반), 연결 List(메모리의 동적할당 기반) 로 나뉨 List의 주요 함수 순차 List 구현 방법 1차원 배열에 항목들을 순서대로 저장한다. 데이터의 종류와 구조에 따라 구조화된 자료구조를 만들어 배열로 구현할 수도 있다. 배열의 인덱스를 이용해 원하는 위치의 데이터에 접근할 수 있다. 삽입연산, 삭제연산 연결 List 단순 배열을 이용한 순차 List의 단점을 보완한 자료 구조 노드 : 연결 List에서 하나의 원소에 필요한 데이터를 갖고 있는 자료단뒤 데이터 필..
-
SW 문제해결 기본 - Queue(BFS(너비 우선 탐색))Algorithm/SWEA Learn 2023. 3. 28. 10:24
하루입니다. Queue 자료구조의 개념 Queue의 종류 Queue의 활용 너비 우선 탐색(BFS) 1차시. Queue 자료구조의 개념 queue의 특성 Queue의 주요 연산 Queue의 연산 과정 선형 큐 : 간단하고 기본적이다. 배열을 사용한다. 원형 큐 : 선형에서 발전된 형태이다. 배열을 사용한다. 연결 큐 : 리스트 형식을 사용한다. 위의 세 가지를 활용한 우선순위 큐가 존재한다. 2차시. Queue의 종류 선형 큐의 특징 보통 1차원 배열을 이용하여 구현한다. 큐의 크기 : 배열의 크기 front : 저장된 첫 번째 원소의 인덱스 rear : 저장된 마지막 원소의 인덱스 상태표현 초기 상태: front = rear = -1 공백 상태: front = rear 포화 상태: rear = n-1 ..
-
SW 문제해결 기본 - Stack 2 (계산기, 백트래킹, 분할 정복)Algorithm/SWEA Learn 2023. 3. 28. 09:15
하루입니다. 1차시: 계산기 2차시: 백트래킹 기법의 정의 3차시: 분할 정복 1차시: 계산기 중위표기식 : 1 + 2 후위표기식 : 12 + 중위표기법을 후위표기법으로 변경하기 (Stack) 피연산자는 스택에 쌓이지 않는다. 연산자는 우선순위에 따라 스택에 쌓인다. '('는 스택 밖에서는 최우선순위, 스택 안에서는 마지막순위이다. ')'는 여는 괄호를 만날 때까지 모두 pop 시킨다. stack이 비면 종료된다. 후위표기법 수식을 stack으로 계산하기 이번엔 피연산자가 stack에 들어간다! 2차시: 백트래킹 기법의 정의 해가 아니면 되돌아가서 다시 해를 찾는 기법이다. 최적화 문제와 결정 문제를 해결할 수 있다. 최적화 문제와 결정 문제란? 어떤 노드의 유망성을 점검한 후에 유망하지 않다고 결정되면..
-
SW 문제해결 기본 - Stack 2 (계산기, 백트래킹, 분할 정복)Algorithm/SWEA Learn 2023. 3. 27. 10:01
하루입니다. 1차시: 계산기 2차시: 백트래킹 기법의 정의 3차시: 분할 정복 1차시: 계산기 중위표기식 : 1 + 2 후위표기식 : 12 + 중위표기법을 후위표기법으로 변경하기 (Stack) 피연산자는 스택에 쌓이지 않는다. 연산자는 우선순위에 따라 스택에 쌓인다. '('는 스택 밖에서는 최우선순위, 스택 안에서는 마지막순위이다. ')'는 여는 괄호를 만날 때까지 모두 pop 시킨다. stack이 비면 종료된다. 후위표기법 수식을 stack으로 계산하기 이번엔 피연산자가 stack에 들어간다! 2차시: 백트래킹 기법의 정의 해가 아니면 되돌아가서 다시 해를 찾는 기법이다. 최적화 문제와 결정 문제를 해결할 수 있다. 최적화 문제와 결정 문제란? 어떤 노드의 유망성을 점검한 후에 유망하지 않다고 결정되면..