Algorithm 썸네일형 리스트형 [백준] 10867번 : 중복 빼고 정렬하기 - C/C++ 문제 외에 추가적으로 더 생각해야하는 문제가 아니어서 좋았다.문제에서 주어진 내용을 따라가면 된다. 문제 풀이 순서1. 수의 개수 N 입력2. vector에 N개의 수 입력3. 중복 제거 후 정렬 or 정렬 후 중복 제거 N개의 수를 vector에 입력int n;vector v;cin >> n; for(int i = 0; i > x; v.push_back(x);} 벡터에 값을 넣을 때는 크게 두 가지의 방법이 존재한다.1. 필자처럼 push_back() 사용하기2. insert() 사용하기 언제 어떤 것을 사용할지는 상황에 따라 다르다.함수사용 목적시간 복잡도특징push_back()벡터의 끝에 값을 추가평균 O(1), 최악 O(n)동적 배열 확장 시 재할당 발생 가능insert()특정 위치에 .. 더보기 [백준] 2493번 : 탑 - C/C++ 하루 종일 걸렸다.나는 너무 어렵게 풀었다. 어렵게 풀었다기 보다는 아직 이정도 난이도의 문제를 풀 정도가 아닌 것 같다.엄청난 검색과 엄청난 참고를 통해 완성한 나의 코드 분류 보고 풀지 말라고 했는데,,, 나는 또 보고 풀었다. 일단 풀이를 시작해보겠다. 자료구조 문제이고 스택을 이용하라고 했으니까그렇게 풀어보자. 탑의 개수와 높이 설정하기.int n;cin >> n;stack> s; pair가 무엇인지에 대해서는 이전 글에 설명했으니아래 링크를 달아두겠다.https://binaryroot.tistory.com/9 [백준] 10814번 : 나이순 정렬 - C/C++내가 생각한 문제 해결 순서는 아래와 같다. 1. 회원수 n 입력하기2. 회원의 나이와 이름 입력하기3. 나이순으로 출력하기 문제는 간단했.. 더보기 [백준] 1546번 : 평균 - C/C++ 문제 풀이 순서는 아래와 같다.1. 시험 본 과목의 수 N 입력 받기2. 배열에 넣기3. 새로운 평균을 통해 성적 구하기 점수를 1차원 배열에 넣을 건데,오늘은 계속해서 유용하게 쓰일 만한 팁을 소개하고자 한다. 바로 const 로 선언해주기const int NMAX = 1000;문제에서 과목의 개수가 1000 개가 넘어가지 않도록 지정했기 때문에const 형태로 선언해주면, 배열은 아래처럼 써줄 수 있다.int ary[NMAX]; 그냥 아래처럼 쓰면 안 되나요?int ary[1000]; 상관은 없다.내가 들었던 강의에서는나중에.. 더 어려운 문제를 풀게 되면제시한 수의 범위를 넘어서는 것을 방지하기 위해const로 선언한다고 하긴 했다. 코드 스타일은 사람마다 다르니참고만 해도 좋다. 1차원 배열에 값.. 더보기 [C++] 형 변환 string형 --> 숫자형(int, long, double, float)#include string num = "1234";string num_dec = "1234.56";int inum = stoi(num);long lnum = stol(num);double dnum = stod(num_dec);float fnum = stof(num_dec); 숫자형(int, long, double, float) --> string형#include int inum = 1234;long lnum = 1234;double dnum = 1234.56;float fnum = 1234.56f;string intToString = to_string(inum);string longToString = to_string(lnum).. 더보기 [백준] 11720번 : 숫자의 합 구하기 - C/C++ 문제 풀이 과정은 아래와 같다.1. 숫자의 개수 N 입력2. 공백 없이 N개의 숫자 입력3. 문자열 --> 숫자형 변환 1번과 2번 과정은 쉽게 해결할 수 있을 것이다.백준 11720번을 해결하는 핵심은 다음과 같다. 문자열을 숫자형으로 변경하려면 아스키코드(ASCII)를 이해해야한다는 것이다.아스키코드에서 같은 의미의 문자와 숫자의 코드값 차이는 48이다.문자열 '1'은 아스키코드 값으로는 49 이기 때문에숫자 1로 변환하기 위해서는 -48 혹은 -'0'의 연산이 필요하다. 필자는 -48 대신 -'0'을 선택했다.아래는 str[i]를 정수로 계산하여 sum에 누적하는 방법의 코드이다.sum += str[i]-'0'; 전체 코드#include #include //숫자의 합using namespace .. 더보기 [자료구조] 배열과 리스트 그리고 벡터 코딩 테스트에서 주어진 문제를 해결하기 위해서는사용해야할 알고리즘 그리고 자료구조가 중요하다.필자는 자료구조에 대한 정리글을 써보려한다. 백준에서 문제를 해결하면서, 혹은 강의를 들으면서배열과 리스트는 똑같은 개념이 아닌가? 하며매일 헷갈렸다.이번 기회에 그 개념을 바로 잡아보자. 배열메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조배열의 값은 인덱스를 통해 참조선언한 자료형의 값만 저장 가능배열의 특징인덱스를 사용하여 값에 바로 접근 가능새로운 값을 삽입하거나 특정 인덱스에 있는 값 수정 어려움.값을 삽입하거나 삭제하려면 해당 인덱스 주변에 있는 값을 이동시켜야 함.배열의 크기는 선언할 때 지정.한번의 선언 가능, 크기를 늘리거나 줄일 수 없음.구조 간단 리스트: 값과 포인터를 묶은 노드를.. 더보기 [백준] 2167번 : 2차원 배열의 합 - C/C++ 문제 해결 과정은 아래와 같다.1. 배열 입력2. 합을 구할 K 입력 받고 정수 네 개 입력 받기3. 합 구하기 벡터를 이용하여 동적으로 2차원 배열을 생성할 것이다.vector> ary(n + 1, vector(m + 1, 0)); ary[n+1][m+1] → (1-based index)로 사용하기 위해 입력받은 n,m을 각각 1씩 증가시킨다누적합 계산을 쉽게 하기 위해서 모든 값을 0으로 초기화 시킨다. -2차원 누적합(prefix sum)???수들의 나열에서 특정 구간의 합을 의미하는 prefix sum은보통은 1차원 배열에서 i부터 k 인덱스 사이의 값을 구하는 데에 이용된다. 부분합은 아래와 같이 코드를 작성할 수 있다.for (int i = 1; i > num; ary[i][j] =.. 더보기 [백준] 10814번 : 나이순 정렬 - C/C++ 내가 생각한 문제 해결 순서는 아래와 같다. 1. 회원수 n 입력하기2. 회원의 나이와 이름 입력하기3. 나이순으로 출력하기 문제는 간단했는데이걸 2차원배열로 입력으로 받아버리면.. 시간 초과가 뜰 것 같았다. 그래서 방법을 생각하다가얼마전 알고리즘 강의에서 배운 pair 를 사용해보기로 했다. pair 선언은 아래처럼 할 수 있다.vector> vector; -pair??pair 가 기본 구조이다.특징은 아래와 같다. 저장한 값은 .first 그리고 .second로 접근할 수 있다.2개의 값을 순서쌍 형태로 저장할 수 있다.정렬에 용이하게 사용된다. 우리는 입력 받은 n 만큼의 쌍을 입력 받아야하니까for 문을 돌려준다.for (int i = 0; i > num >> str; vector.empl.. 더보기 이전 1 2 3 4 다음