[HackerRank] Simple Array Sum
2021. 9. 18. 18:45
알고리즘
# Simple Array Sum (Warmup) [문제] [코드] int simpleArraySum(vector ar) { int sum = 0; for(int i = 0; i < ar.size(); i++) sum += ar[i]; return sum; } [코드설명] 배열의 각 요소의 합을 구하는 문제다. 함수의 파라미터로 int형의 vector가 들어왔다. 요소의 합은 int형 변수인 sum에 저장하도록 했다. 본격적으로 합을 구하기에 앞서 값의 오류를 방지하기 위해 sum을 0으로 초기화 했다. 그 후 ar 벡터의 size 메소드로 vector의 크기를 구해 for문의 조건식을 작성하고, sum에 ar벡터의 각 요소를 합했다. for문 종료되면 sum을 반환한다. [채점 결과]
[HackerRank] Sparse Arrays
2021. 9. 18. 18:36
알고리즘
# Sparse Arrays (Arrays) [문제] [코드] vector matchingStrings(vector strings, vector queries) { map m; for (int i = 0; i < queries.size(); i++) m[queries[i]] = 0; for (int i = 0; i < strings.size(); i++) if (m.find(strings[i]) != m.end()) m[strings[i]] += 1; vector result; for (int i = 0; i < queries.size(); i++) result.push_back(m[queries[i]]); return result; } [코드설명] queries 목록에 포함된 단어가 strings 목록..
[Webhacking.kr] old-05
2021. 9. 11. 12:16
Study/Web Hacking
Challenge 5에는 Login과 Join버튼이 있다. Login버튼을 누르면 로그인 할 수 있는 form이 생긴다. Join버튼을 누르면 Access_Denied라는 알림창이 뜬다. 회원가입 페이지로 진입이 안되는걸 봐선 문제를 해결하려면 Join페이지로 진입해야 할 거 같다. 버튼 클릭으로는 진입이 안되니 URL로 진입해보았다. 다음은 로그인 페이지의 URL이다. 해당 URL에서 login.php만 지워보았다. 그러면 아래와 같은 페이지로 이동된다. join.php가 보인다. 해당 페이지로 이동해봤다. alert창이 뜨고, 확인을 누르면 검은 화면이 나온다. 소스코드를 확인해봤다. 소스코드 난독화가 되어있다. 일단 개행먼저 해주자. l = 'a'; ll = 'b'; lll = 'c'; llll =..
[Webhacking.kr] old-07
2021. 9. 11. 04:00
Study/Web Hacking
https://min-zero.tistory.com/entry/webhackingkr-challengeold-old-06-1 Challenge7에 Admin page라는 글씨와 auth버튼, val이라는 변수가 있다. 아래 view-source를 누르면 소스코드를 확인할 수 있다.
[HackerRank] Solve Me First
2021. 9. 11. 03:36
알고리즘
# Solve Me First (Warmup) [문제] [코드] int solveMeFirst(int a, int b) { return a+b; } [코드설명] 두 정수의 합을 구하는 문제다. 변수를 따로 생성해서 풀지 않고, a와 b를 더한 값을 바로 반환했다. 이때 a와 b모두 int타입이므로 반환 타입도 int가 된다. [채점 결과]
[HackerRank] Balanced Brackets
2021. 9. 11. 03:30
알고리즘
# Balanced Brackets (Stacks) [문제] [코드] string isBalanced(string s) { stack stack; string result; int i; for(i = 0; i < s.size(); i++) { char c; c = s.at(i); if(c=='(' || c=='{' || c=='[') stack.push(c); else { if(!stack.empty() && ((stack.top()=='(' && c==')') || (stack.top()=='{' && c=='}') || (stack.top()=='[' && c==']'))) stack.pop(); else return "NO"; } } return result = stack.empty() ? "YES..
[HackerRank] Correctness and the Loop Invariant / Running Time of Algorithms
2021. 8. 28. 19:37
알고리즘
# Correctness and the Loop Invariant (Sorting) [문제] [코드] - 원래 코드 void insertionSort(int N, int arr[]) { int i,j; int value; for(i=1;i0 && value
[HackerRank] Binary Search Tree : Lowest Common Ancestor / Insertion Sort - Part 2
2021. 8. 28. 16:45
알고리즘
# Binary Search Tree : Lowest Common Ancestor (Trees) [문제] [코드] Node *lca(Node *root, int v1,int v2) { // Write your code here. int min_v = min(v1, v2); int max_v = max(v1, v2); while(root) { int cur = root->data; // left subtree if (cur > max_v) root = root->left; // right subtree else if (cur right; // LCA else return root; } return root; } [코드설명] LCA(Lowest Common Ancest..
[natas] Level 26 -> Level 27
2021. 8. 24. 19:31
Study/Web Hacking
: level 26 → level 27 http://natas27.natas.labs.overthewire.org Username과 Password를 받는 폼이 있다. Username과 Password를 올바르게 입력하면 DB table의 내용을 출력한다. Password가 틀리면 Wrong password for user: (username)이 출력된다. Username이 존재하지 않으면 입력한 값을 바탕으로 새로운 계정을 생성한다. natas27