Fascination
article thumbnail
[HackCTF] Web: 보물
War Game & CTF/HackCTF 2022. 5. 1. 05:33

Web: 보물 페이지 숫자 중에 비밀이 하나 있고 그 곳에 모든 것을 두고왔다는 것을 보니 그 곳에 플래그가 있는 것 같다 보물 내 페이지 숫자 중엔 비밀이 하나 있지...그곳에 보물을 숨겨놨다. 원한다면 찾아봐라 모든 것을 그곳에 두고 왔다! Page 1 Page 2 Page 3 소스 코드를 보니 form의 method는 get방식인 것을 확인할 수 있었다 page에 넘기는 value를 다르게 주고 있는 것 같으니 확인해보자 우선 페이지 3개를 확인해보니 아래 암호같은 문자열이 출력되는 것을 확인할 수 있었다 page= 뒤에 값을 다르게 주면 이 문자열이 변하는 것 같아 다른 숫자도 입력해 보았다 ㅎ.. 1부터 20까지 하나하나 입력해본 결과 문자열은 모두 다르게 출력되지만 FLAG는 찾을 수 없어 더..

article thumbnail
[HackCTF] Web: Button
War Game & CTF/HackCTF 2022. 5. 1. 04:56

Web: Button 버튼을 이용해서 플래그를 출력하는 문제인 것 같다 하지만 버튼을 눌렀을 때 이전에 풀었던 hidden처럼 url의 인자에 변화가 있다던가하는 특이점은 없었다 BUTTON 아래의 버튼으로 하여금 플래그를 출력하게 해줘! button의 method가 post이며 input 타입이 정해져있는 것을 확인할 수 있다 하지만 입력 폼이 따로 있거나 하지는 않아서 버튼 자체를 이용해야 한다고 추측했다 우선 변경 가능한 값음 name과 value 정도가 될 수 있을 것 같다 우선 버튼이 submit이고 form은 method가 post로 설정되어 있다 문제에서 버튼으로 하여금 플래그를 출력하게 해달라는데... 다음과 같이 input 태그의 name을 "flag"로 변경해보았다 변경한 후에 버튼을 ..

article thumbnail
[C++] HackerRank : Closest Numbers
CODE/HackerRank 2021. 10. 7. 17:36

[문제] Closest Numbers | HackerRank Find the closest numbers in a list. www.hackerrank.com [문제 설명] - 가장 작은 차이를 가지는 두 수의 조합을 담는 벡터를 반환하는 함수를 만들자 [문제 풀이] - 벡터에 있는 수를 오름차순으로 정렬 - for문을 돌면서 두 값의 차이를 구함 > 두 값의 차이가 min과 같다면 새로 만든 벡터에 두 원소를 push > 두 값의 차이가 min보다 작다면 새로 만든 벡터에서 모든 원소를 pop 하고 새로운 두 원소를 push > 두 값의 차이가 min보다 크다면 그냥 넘어감 [코드] vector closestNumbers(vector arr) { sort(arr.begin(),arr.end()); ve..

article thumbnail
[C++] HackerRank : Compare the Triplets
CODE/HackerRank 2021. 10. 3. 15:43

[문제] Compare the Triplets | HackerRank Compare the elements in two triplets. www.hackerrank.com [문제 설명] - alice와 bob의 세개의 숫자를 비교하여 각 사람의 점수를 더함 - 각 배열의 자리에 더 큰 수를 낸 사람이 이기며 동점일 땐 아무도 점수를 받지 않음 [문제 풀이] - for문을 통해 a vector와 b vector의 각 자리를 비교 > a가 더 크다면 alice의 점수를 증가 > b가 더 크다면 bob의 점수를 증가 > 동점일 경우에는 아무것도 하지 않고 넘어감 - int형 vector를 생성하여 0번째 인덱스에는 alice의 점수를, 1번째 인덱스에는 bob의 점수를 저장 [코드] vector compare..

article thumbnail
[C++] HackerRank : Plus Minus
CODE/HackerRank 2021. 10. 3. 15:31

[문제] Plus Minus | HackerRank Calculate the fraction of positive, negative and zero values in an array. www.hackerrank.com [문제 설명] - 양의 값의 비율, 음의 값의 비율, 0의 비율을 구해야 함 - 소숫점 아래 6자리까지 표현함 [문제 풀이] - 각 양수, 음수, 0의 개수를 세기 위하여 for문으로 벡터를 탐색 - 나누어지는 수가 실수형이여야 하므로 형변환을 시켜주어야 함 - 비율을 구하기 위해 각 개수/벡터의 원소의 개수 식을 세움 - 6자리까지 출력할 수 있도록 출력 포맷 형식 지정 [코드] void plusMinus(vector arr) { int plus=0; int minus=0; int zer..

article thumbnail
[C++] HackerRank : Grading Students
CODE/HackerRank 2021. 10. 3. 15:14

[문제] Grading Students | HackerRank Round student grades according to Sam's rules. www.hackerrank.com [문제 설명] - 학생들의 최종 성적을 구하는 문제 - 38점 이하의 점수를 받는 학생들은 반올림된 점수를 받지 못함 - 학생들의 점수를 반올림 할 수 있는 경우에 대하여는 반올림한 성적을 반영함 [문제 풀이] - 일의 자리가 5인 점수와 그렇지 않은 점수를 구별해야 함 - 100점일 때와 낙제점 38점 이하일 때에 대하여 예외처리 필요 - 일의 자리가 5 아래일 경우 해당 점수의 십의자리에 해당하는 숫자*10+5와 주어진 점수의 차를 비교하여 최종 성적을 구함 - 일의 자리가 5이상일 경우 해당 점수의 십의 자리에 해당하는 ..

article thumbnail
[C++] HackerRank : Equal Stacks
CODE/HackerRank 2021. 10. 3. 14:34

[문제] Equal Stacks | HackerRank Equalize the piles! www.hackerrank.com [문제 설명] - 그림을 보니 push된 반대 순서대로 pop이 되는 것을 확인할 수 있음 - 반환 값은 각각 pop하며 스택에 남은 수의 합이 같아지는 순간 그 합을 리턴함 [문제 풀이] - stack과는 다르게 아래서 깔린 수부터 pop되므로 reverse함수를 통해 순서를 변경해주어야 함 - sum 함수를 선언하여 각 벡터의 원소의 합을 각각 구함 - 세 합이 같은 수가 될때까지 각각의 합을 감소시켜 같은 수가 될 때까지 반복함 - 같은 수가 되는 순간 그 수를 반환시킴 [코드] int sum(vector a){ int sum=0; for(int i=0;im){ a-=h1.b..

article thumbnail
[C++] BOJ 1769 : 3의 배수
CODE/BOJ 2021. 10. 3. 02:12

[문제] 1769번: 3의 배수 문제가 잘 풀리지 않을 때, 문제를 바라보는 시각을 조금만 다르게 가지면 문제가 쉽게 풀리는 경험을 종종 해 보았을 것이다. 여러 가지 방법이 있지만 그 중 하나로 우리가 풀고 싶은 문제를 www.acmicpc.net [문제 풀이] - 한자리씩 char 배열에 저장 - 배열에 저장된 수들을 int형으로 바꿔서 더함 - 더한 값이 한자리 수가 될 때까지 위의 과정을 반복 - 더한 값이 한자리 수 중 3, 6, 9가 아니면 3의 배수가 아니므로 NO를 출력하고 조건을 만족하면 YES를 출력 [코드] #include #include #include using namespace std; void cal(char num[]); int main() { cin.sync_with_std..

article thumbnail
[C++] BOJ 13706 : 제곱근
CODE/BOJ 2021. 10. 3. 00:33

[문제] 13706번: 제곱근 첫째 줄에 양의 정수 N이 주어진다. 정수 N의 제곱근은 항상 정수이며, N의 길이는 800자리를 넘지 않는다. www.acmicpc.net [문제 풀이] - 풀이 1) sqrt 라이브러리 사용 - 풀이 2) 이분탐색법 사용 > mid의 제곱이 원래 값과 같아질 때까지 반복시킴 [코드] - python: 백준 통과 코드 import math a=int(input()) print(math.isqrt(a)) - C++: 백준 통과 X --> 로직 문제인 것 같다는 결론이 많음 #include #include using namespace std; int main() { int n; cin>>n; int low = 1; int high = n; int mid; while (1) {..

article thumbnail
[C++] BOJ 2941 : 크로아티아 알파벳
CODE/BOJ 2021. 10. 2. 23:46

[문제] 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net [문제 풀이] - 크로아티아 알파벳의 첫 글자를 기준으로 그 다음 글자를 확인하여 변수 i를 증가시켜 자리를 이동한 후 총 개수를 셈 [코드] #include using namespace std; int main() { string str; int count = 0; cin>>str; for (int i = 0; i