본문 바로가기

전체 글

(15)
Casting Casting(캐스팅)이란?변수의 데이터 타입을 다른 데이터 타입으로 변경하는 것ex) Int → float C++의 형변환1. 묵시적 형변환 (Implicit type conversion)int main() { // 1. 묵시적 캐스팅 int a = 4; float b = 3.14; a = b; // 3 출력 cout
백준 1260번 : DFS와 BFS https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 1. 문제설명 탐색알고리즘의 기초인 DFS와 BFS를 구현하는 문제 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개..
HashSet 이란? 게임프로그래밍 서버쪽 공부를 하다가 HashSet이라는 것을 알게 되었습니다. HashSet이란? 고성능 집합 작업을 제공하는 자료구조입니다. 수학 집합 모델의 특성을 가지기 때문에 자료의 중복을 허용하지 않고 요소들이 정렬되어 있지 않는 특징을 가지고 있습니다. Dictionary는 Dictionary는 자료구조에 데이터를 추가할 때 Key와 Value를 한 쌍으로 추가하고 Dictionary에서 검색할 때 Key를 이용하여 Value를 찾지만 HashSet은 Key로 Key 자체를 찾는다고 볼 수 있습니다 즉, 값(Value)가 없는 컬렉션으로 간주될 수 있습니다. C#에서 제공하는 함수들은 다음과 같습니다. HashSet 작업 수학적 연산 UnionWith Union 또는 Set 더하기 (합집합) ..
정보처리기사 합격 정보처리기사 합격!!! 쉬운 문제도 틀리고 제대로 못 쓴 문제도 많았다고 생각했는데 운이 좋았는지 합격했습니다.
백준 5585번 : 거스름돈 https://www.acmicpc.net/problem/5585 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net 1. 문제설명 그리디 알고리즘으로 분류된 문제인 5585번 문제 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사고 카운터에서 1000엔 지폐를 한장 냈을 때, 받을 잔돈에 포함된 잔돈의 개수를 구하는 프로그램..
그리디 알고리즘(욕심쟁이 알고리즘, Greedy Algorithm) 그리디 알고리즘 (욕심쟁이 알고리즘, 탐욕 알고리즘, Greedy Algorithm 등)이란 문제를 해결하는 과정에서 현재 상태에서 가장 최적의 해를 선택하여 문제를 해결하는 방법을 의미합니다. 동적 계획법과 자주 같이 언급되는 알고리즘으로 모든 경우를 살펴본 뒤 최적의 해를 구하는 동적 계획법과는 다르게 현재 상태에서 가장 최적이라고 여겨지는 해답만을 선택하기 때문에 동적계획법에 비해 속도가 빠르다는 장점이 있으나 모든 경우를 살펴보는 것이 아니기 때문에 늘 최적의 해라는 보장은 없다는 단점이 있습니다. 동적 계획법 (다이나믹 프로그래밍, Dynamic programming) 동적 계획법 (동적 프로그래밍, 다이나믹 프로그래밍, Dynamic programming, DP 등)이란 복잡한 하나의 문제를 ..
동적 계획법 (다이나믹 프로그래밍, Dynamic programming) 동적 계획법 (동적 프로그래밍, 다이나믹 프로그래밍, Dynamic programming, DP 등)이란 복잡한 하나의 문제를 작은 여러 개의 문제로 나누어 해결하는 방법을 의미합니다. 동적 계획법으로 풀기 위해서는 부분 반복 문제와 최적 부분 구조라는 두가지 조건을 만족해야 하는데 각각의 정의는 다음과 같습니다. 1. 부분 반복 문제 (Overlapping Subproblem) 피보나치 수열에서 102번째 항을 구하기 위해서 101번째항과 100번째 항을 구해야하고 101번째 항을 구하기 위해서는 100번째 항과 99번째 항이 필요하고. 100번째 항을 구하기 위해서는 99번째 항과 98번째 항이 필요합니다. 굵은 글씨로 된 부분이 연산의 중복이 발생하는 부분인데 첫번째 100번째 항은 102번째 항을..
백준 9095번 : 1, 2, 3 더하기 https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 1. 문제설명 다이나믹 프로그래밍으로 분류된 문제인 9095번 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11..