본문 바로가기

개발 관련 기타

(73)
[프로그래머스] (C++) 피보나치 수 문제 링크 힌트 n이 100000 일 때 피보나치 수를 구해보니 overflow가 발생하였다 구하는 값은 나머지이다. overflow를 방지하려면 나머지 연산을 잘 이용해야 한다. 소스 코드 #include #include int solution (int n) { int last2, last1, num; last2 = 0; last1 = 1; for (int i = 2; i
[프로그래머스] (C++) 행렬의 곱셈 문제 링크 소스 코드 // [프로그래머스] 행렬의 곱셈 #include #include #include using namespace std; vector solution(vector arr1, vector arr2) { vector answer; int row_size = arr1.size(); int col_size = arr2[0].size(); vector element; for (int i = 0; i < row_size; i++) { for (int j = 0; j < col_size; j++) { int sum = 0; for (int k = 0; k < arr2.size(); k++) { sum += arr1[i][k] * arr2[k][j]; } element.push_back(sum); ..
[프로그래머스] (C++) 큰 수 만들기 문제 문제로 가시려면 이 링크를 클릭해주세요. 힌트 앞 뒤 자리 비교 해보라 소스 코드 // [프로그래머스] 큰 수 만들기 #include #include #include using namespace std; string solution(string number, int k) { int eraseNum = 0; for (int i = 0; i < k; i++) { for (int j = 0; j < number.length() - 1; j++) { if (number[j] < number[j+1]) { number.erase(j,1); eraseNum++; break; } } } for (int i = 0; i < k - eraseNum; i++) { number.pop_back(); } return n..
[프로그래머스] (C++) 카펫 문제 문제는 이 곳에 가면 보실 수 있습니다. 힌트 테두리는 내부 블록에 의해 결정된다. 소스 코드 // [프로그래머스] // 카펫 #include #include #include using namespace std; vector solution(int brown, int red) { vector answer; int length; int width; int numBrown; int numCorner = 4; for (int i = 1; i
(C언어) epoll 정의 epoll 리눅스에서 select 대신 사용 가능한 I/O subscription 모델 FD를 등록하여 해당 FD를 계속 확인하거나 일정 시간 확인하여 요청된 이벤트를 처리하는 메케니즘 int epoll_create(int size); fd들의 입출력 이벤트 저장을 위한 공간 할당 int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event) op 값으로 EPOLL_CTL_ADD, EPOLL_CTL_MOD, EPOLL_CTL_DEL 이 들어 올 수 있음 EPOLL_CTL_ADD: epoll에 fd를 등록 (fd로 처리 할 이벤트 종류 등록) [종류: EPOLLIN, EPOLLOUT, EPOLLPRI 등] int epoll_wait(int epfd,..
[프로그래머스] (C++) 점프와 순간이동 문제 문제는 이 곳에 가시면 있습니다. 힌트 일부의 최적의 해를 사용해 전체의 최적의 해를 구한다. 소스 코드 (1차 시도) //[프로그래머스] //점프와 순간 이동 #include #include #include using namespace std; vector gMin; int getMin(int n) { if (gMin[n] != 0) return gMin[n]; if (n % 2 == 0) { if (getMin(n/2) < (getMin(n-1) + 1)) { gMin[n] = getMin(n/2); } else { gMin[n] = getMin(n-1) + 1; } } else { gMin[n] = getMin(n-1) + 1; } return gMin[n]; } int solution(int..
[프로그래머스] (C++) 최댓값과 최솟값 문제 소개 문제는 이 링크를 따라가시면 있습니다. 소스 #include #include using namespace std; string solution(string s) { string answer = ""; istringstream iss{s}; string numStr; int num; vector intVec; while (std::getline(iss, numStr, ' ')) { num = std::stoi(numStr); intVec.push_back(num); } int max = *std::max_element(intVec.begin(), intVec.end()); int min = *std::min_element(intVec.begin(), intVec.end()); answer = s..
[프로그래머스] (C++) 단체사진 찍기 예제 테스트 방법 input.txt 2 2 [N~F=0, R~T>2] 2 [M~C\1] main.cc int main () { int T; int n; std::string line; std::freopen("input.txt", "r", stdin); std::cin >> T; std::vector data; for (int i = 0; i > n; for (int j = 0; j > line; if (j == 0) { line.erase(0, 1); } line.erase(line.end()-1); data.push_back(line); } std::cout