본문 바로가기

728x90

벡터

[백준] 1107번 : 리모컨 - C/C++ 문제를 읽고 바로 풀이 과정이 떠오르지는 않았다.그 이유는 문제 자체를 이해 못했기 때문.문제에서 요구하는 내용을 정리하면 다음과 같다. 리모컨을 이용해서 채널 n으로 이동할 때, 버튼을 최소로 누르는 문제이다.리모컨은 0~9까지의 숫자 버튼과 +/- 버튼이 있다.일부 숫자 버튼이 고장났을 수 있기 때문에 이 부분까지 고려해야 한다.(고장난 버튼의 수와 번호는 사용자가 입력함) 문제 풀이 순서는 다음과 같다.1. 채널 입력 받기2. 동작하지 않는 버튼 입력하기3. 결과 출력 당연한 과정을 설명했다. 이제 문제를 풀어보자. 크게 두 단계로 문제 풀이를 할 수 있다. +/- 버튼만 사용하는 경우현재 채널은 100이므로, |100 - N| 만큼 +/- 버튼을 눌러 이동할 수 있다.이를 초기 최소 횟수로 설정한.. 더보기
[자료구조] 배열과 리스트 그리고 벡터 코딩 테스트에서 주어진 문제를 해결하기 위해서는사용해야할 알고리즘 그리고 자료구조가 중요하다.필자는 자료구조에 대한 정리글을 써보려한다.  백준에서 문제를 해결하면서, 혹은 강의를 들으면서배열과 리스트는 똑같은 개념이 아닌가? 하며매일 헷갈렸다.이번 기회에 그 개념을 바로 잡아보자.  배열메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조배열의 값은 인덱스를 통해 참조선언한 자료형의 값만 저장 가능배열의 특징인덱스를 사용하여 값에 바로 접근 가능새로운 값을 삽입하거나 특정 인덱스에 있는 값 수정 어려움.값을 삽입하거나 삭제하려면 해당 인덱스 주변에 있는 값을 이동시켜야 함.배열의 크기는 선언할 때 지정.한번의 선언 가능, 크기를 늘리거나 줄일 수 없음.구조 간단   리스트: 값과 포인터를 묶은 노드를.. 더보기

728x90