링크 : https://www.hackerrank.com/challenges/tree-postorder-traversal/problem 문제> 입력받은 트리를 postOrder로 출력할것. 해결방법. postOrder는 후위운행. 왼쪽노드 -> 오른쪽노드 -> 자신 노드 순으로 탄다. 재귀호출사용. /* you only have to complete the function given below. Node is defined as struct node { int data; node* left; node* right; }; */ void postOrder(node *root) { if(root == NULL) return; postOrder(root->left); postOrder(root->right); ..
링크 : https://www.hackerrank.com/challenges/mars-exploration/problem 문제> S O S로 순서대로 입력되는 반복신호 중 신호와 다른 값이 들어온 수를 출력할것. 해결방법. 1) 순차 원본신호(S O S)를 받아놓고 문자 단위로 순서대로 입력 문자열 비교. - 비교 중 다른값이면 카운트 증가. - 비교 후 원본신호 수 만큼 입력 문자열을 삭제하고 다시 원본신호와 비교. - 문자열의 문자수가 원본신호보다 크거나 같은 동안 반복. using System; using System.Collections.Generic; using System.IO; using System.Linq; class Solution { static void Main(String[] ar..
링크 : https://www.hackerrank.com/challenges/correctness-invariant/problem 문제> * 제대로 정렬된 값이 출력되게 코드를 수정할 것. * 루프불변자에 대한 설명을 이해하라고 낸 문제인듯. - 루프불변자 : 자료구조론에서 알고리즘을 검증하는데 쓰이는 개념. 반복마다 만족해야 하는 성질이다. - 루프가 항상 참을 만족하는 조건이다. Initialization : 루프 실행전(제한 된 의미로) true. Maintenance : 반복 전에 true면, 다음 반복 전에도 true. (항상 참이라는 뜻 같다) Termination : 끝나면 유용한 방법으로 해지? Initialization: It is true (in a limited sense) befor..
링크 : https://www.hackerrank.com/challenges/icecream-parlor/problem 문제> * 모은 돈(m)으로 딱 떨어지게 서로 다른 두가지 맛 아이스크림을 사려고한다. * n은 맛의 종류 수(flavors). * ci는 맛 각각의 가격들. 해결방법. 1) money에서 기준이 되는 i번째 아이스크림의 가격을 뺀 잔액을 구한다. * 잔액을 기준이 되는 i의 +1부터 위치 탐색. * 잔액과 동일한 값이 없으면 잔액을 리셋하고 기준을 i + 1로 변경 해서 반복. 2) 출력시 출력 포맷에 맞추기 위해 i와 찾은 인덱스 각각에 +1 한 후 출력. sing System; using System.Collections.Generic; using System.IO; class S..
링크 : https://www.hackerrank.com/challenges/minimum-absolute-difference-in-an-array/problem 문제> * 제시 된 숫자들 중, 두 수의 차를 절대값으로 했을 때 가장 작은 결과값을 구하라. - 답 제출시 퍼포먼스 체크를 해서 통과 못하면 실패한다. 해결방법. minimumAbsoluteDifference 함수의 내부만 채우면 된다. 1) 배열을 리스트로 받아서 정렬. 2) i와 i+1의 차를 구해 절대값으로 변경. (순차 쌍의 차에 같은 부호의 차가 값이 작다.) - 비교해 더 작은값을 누적. * 만약 받은 값이 0이면 멈추고 리턴. (절대값이기 때문에 최소값은 0 이하로 나올 수 없다.) - 최소값을 리턴. using System; u..