[문제] Time Conversion | HackerRank Convert time from an AM/PM format to a 24 hour format. www.hackerrank.com [문제 설명] - 입력은 string으로 주어지면 12시 형식으로 주어짐 - AM과 PM을 보고 24시 시간으로 주어진 시간을 바꾸는 것이 목표 [문제 풀이] - AM인 경우에는 12시 일때 00시 인 것을 고려함 > 12시가 아닌 경우에는 시간을 그대로 반환 - PM인 경우에는 주어진 시에 12를 더해야 함 > 12시에 12를 더할 경우 24가 되므로 이는 예외로 따로 처리함 [코드] string timeConversion(string s) { int num; if(s[8]=='A') { if(s[0]=='1'&..
[문제] Left Rotation | HackerRank Given an array and a number, d, perform d left rotations on the array. www.hackerrank.com [문제 설명] - 예제를 보면 입력 받은 횟수 만큼 맨 앞의 원소가 왼쪽에서 나와 오른쪽으로 들어가고 있음 [문제 풀이] - 왼쪽에서 나와 오른쪽으로 들어가는 방식 -> 큐를 생각 - 백터로 반환 형식이 지정되어 있으므로 vector의 stl 사용 > v.front(): 맨 앞의 원소를 반환 > v.push_back(): 원소를 뒤에 넣음 > v.erase(): 해당 위치의 원소를 지움 [코드] vector rotateLeft(int d, vector arr) { int temp; for(..
Reversing Engineering - 2. x64 기초 1. Introduction # Intorduction - 디스어셈블 과정을 거쳐 나온 어셈블리 코드를 이해하기 위해 어셈블리 코드에 대해 공부할 것 - 어셈블리 코드는 기계 코드와 1:1 대응 - 기계 코드가 실제로 동작할 CPU에 따라 기계 코드 역시 달라지게 됨 > CPU에 따라 어셈블리 코드도 다름 2. 들어가기에 앞서 # Instruction Cycle - 어셈블리 코드는 기계 코드와 대응되므로, 기계 코드가 동작할 CPU가 어떤 역할을 하고 어떻게 동작하는지 알아보는 것이 어셈블리 코드를 이해하는데 도움이 됨 - CPU의 기본적인 동작 과정 > CPU: 다음 실행할 명령어를 읽어오고(Fetch) → 읽어온 명령어를 해석한 다음(Dec..
티스토리 열심히 하다가 갑자기 내가 사용하는 스킨에 프로필 연동시키는 란이 없는게 아쉬웠던 나,, 그래서 뭔가 내가 안쓰는 메뉴바를 지우고 깃허브, boj solve.ac, 인스타 같은 프로필을 연결시키고 싶어져 버린 것! 우선 내가 쓰는 티스토리 스킨은 베이스 캠프에서 배포하는 무료 스킨이다 티스토리 블로그 반응형 무료 스킨 배포 :: 베이스캠프 (나눔, 추천) 업데이트 히스토리 Releases · ruden91/public-basecamp-skin 티스토리 무료 반응형 스킨 :: 베이스캠프. Contribute to ruden91/public-basecamp-skin development by creating an account on GitHub. github.c.. webruden.tistory.c..
[문제] 2959번: 거북이 첫째 줄에 거북이가 생각한 네 양의 정수 A, B, C, D가 주어진다. (0 num; v[i]=num; i++; } cout
[문제] 2752번: 세수정렬 숫자 세 개가 주어진다. 이 숫자는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 숫자는 모두 다르다. www.acmicpc.net [문제 풀이] - 이중 배열을 사용해 비교하고자 하는 인덱스를 이전 인덱스들과 모두 비교하는 방법을 생각했음 [코드] #include using namespace std; void sorting(int* arr); int main() { int v[3]; unsigned int i=0, num; while(i>num; v[i]=num; i++; } sorting(v); } void sorting(int* arr){ int temp; for(int i=0;i
[문제] 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net [문제 풀이] - 우선 순위 큐를 사용 - 입력 받은 수가 0일 때, 큐가 비어 있으면 0을 출력하고 아니라면 가장 위에 있는 수를 출력 [코드] #include #include using namespace std; int n; // 입력받을 정수의 개수 priority_queue pq; int main() { cin.sync_with_stdio(0); // 시간 초과 해결 cin.tie(0); cin >> n; for (int i=0..
[문제] 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net [문제 풀이] - 인덱스에 해당되지 않는 사람은 다시 순환큐의 성질을 이용해서 맨 뒤에 삽입하여 재검사 할 수 있도록 함 [코드] #include #include using namespace std; int main(){ int n,k; scanf("%d %d",&n,&k); queue q; for(int i=0;i
Reversing Engineering - 1. 리버싱 엔지니어링이란 1. Reversing Engineering # Reversing Engineering - 리버싱 엔지니어링은 이미 만들어진 시스템이나 장치에 대한 해체나 분석을 거쳐 그 대상 물체의 구조와 기능, 디자인 등을 알아내는 일련의 과정 - 소프트웨어 뿐만 아니라 기계공학, 전자공학은 물론 생물학 등에서도 폭넓게 쓰임 - '완성품의 설계도 없이 구조와 동작 과정을 알아내는' 모든 단계 - 자료나 책에 따라 '역공학'이라고 지칭하기도 함 - 줄여서 '리버싱'이라고도 함 # 'Software' Reversing Engineering - 리버싱이 산업의 전 분야에 걸쳐 적용될 수 있지만, 여기서는 소프트웨어를 대상으로 할 것 - 즉, 소스 코드가..
[문제] 12605번: 단어순서 뒤집기 스페이스로 띄어쓰기 된 단어들의 리스트가 주어질때, 단어들을 반대 순서로 뒤집어라. 각 라인은 w개의 영단어로 이루어져 있으며, 총 L개의 알파벳을 가진다. 각 행은 알파벳과 스페이스로만 www.acmicpc.net [문제 풀이] - 단어의 개수가 5로 고정이지만 우선 입력 받는 것으로 처리 - 문장을 입력받고 토큰 단위로 stack에 저장 - pop하여 단어 순서를 뒤집음 [코드] #include #include #include using namespace std; class Word{ public: string words; }; int main() { Word stack[52]; int top = -1; string str; int n; cin>>n; cin.i..