728x90

코테 & 알고리즘 4

[코테/C++] n진법 변환

문제에서 10진수를 n진법 수로 변환하라고 하는 경우가 있다. 아래는 10진수 n = 100을 2진수로 변환하는 코드이다. n에는 변환하고자 하는 10진수 수를, b자리에는 몇 진법으로 변환할 지 숫자를 넣으면 된다. n의 값이 1만큼 작아질 때까지 n을 b로 나눈 나머지 값을 배열에 저장하고, n을 b로 나눈 몫으로 갱신한다. 마지막 몫이 1이라면 그 값을 배열에 넣는다. 배열을 뒤집고, 각 값을 연속으로 출력하면 n진법 변환이 완성된다. 다만, 16진법은 알파벳을 사용하기에 그 부분을 적용하기 위해서는 10이상의 값은 알파벳으로 변환하는 과정이 필요하다. #include using namespace std; vector v; int main(){ int n = 100; int b = 2; while(..

[코테/C++] 순열과 조합

순열과 조합은 알고리즘 문제들의 단골 요소다. 경우의 수를 순열과 조합으로 확인하여 풀어야하는 경우들이 많다. 배열의 순열과 조합을 확인하는 방법을 알아보자. 순열 순열은 next_permutation이라는 메서드를 활용하는 것이 가장 간단한 방법이다. next_permutation을 사용하기 전에 반드시 배열을 오름차순 정렬해야 함을 주의하자. #include using namespace std; int main() { int a[3] = { 1, 3, 2 }; sort(a, a+3); do{ for(int i : a) cout

[코테/C++] 코테에서 자주 사용되는 C++ 자료구조 정리

C++의 장점 중 하나는 알고리즘 문제 풀이에 최적화된 다양한 자료구조를 사용할 수 있다는 점인 것 같다. 매우 다양한 자료구조들이 있는데, 그 중 초보자 수준에서 반드시 알아야 하는 자료구조들만 먼저 정리해본다. vector, array, map, stack, queue 5개만 알아보자. vector vector는 배열의 길이를 알 수 없을 때 사용하는 동적 배열로 코테에서 가장 많이 사용되는 자료구조다. 일반 정적 배열과 유사하지만, 정적 배열과 달리 사용할 수 있는 메서드가 많고, 초기화 방법 등이 조금 다르다. 백준과 같이 모든 코드를 직접 작성하는 경우에는 정적 배열을 최대 크기로 선언하여 사용하기도 하지만 프로그래머스 같은 경우에는 문제에서 vector로 변수를 지정하는 경우가 대부분이다. 타..

[코테/C++] 코테에서 자주 사용되는 C++ 메서드 정리

코딩 테스트 준비를 위해 C++에 입문한 지 얼마되지 않아, 아직은 기본적인 사용법도 헷갈리는 상태다. 여태까지 문제를 풀며 초보적인 수준에서 가장 자주 사용했던 자료 구조와 메서드 등을 정리 해본다. 입력과 출력 프로그래머스 같은 경우 보통 직접 값을 입력받고 출력하지 않아도 되지만, 백준 같은 경우, 직접 값을 입력 받고 출력 하는 코드도 작성해야 한다. 프로그래머스를 사용한 시험에서도 값을 입력받아야 했던 적도 있다. (그 때 매우 당황했다.) 일반적인 경우, 입력과 출력은 cin/cout을 사용하여 간단히 처리할 수 있다. int n, m; cin >> n >> m; cout

728x90