코딩테스트

코딩테스트/HackerRank

[HackerRank] Birthday Cake Candles

www.hackerrank.com/challenges/birthday-cake-candles/problem Birthday Cake Candles | HackerRank Determine the number of candles that are blown out. www.hackerrank.com 가장 긴 양초가 몇개 있는지 세고 리턴하는 함수를 작성하면 되는 문제

코딩테스트/HackerRank

[HackerRank] Pangrams

www.hackerrank.com/challenges/pangrams/problem Pangrams | HackerRank Check whether a given string is a panagram or not. www.hackerrank.com Pangram은 모든 문자라는 뜻으로 한 문장에 모든 문자가 들어있을때를 말한다. 이 문제도 한 문장에 모든 영문자가 들어있는지를 판별하는 문제이다. 한문자라도 없으면 "not pangram"을 출력하고 모든 문자가 있으면 "pangram"을 출력한다.

코딩테스트/HackerRank

[HackerRank] Ice Cream Parlor

www.hackerrank.com/challenges/icecream-parlor/problem Ice Cream Parlor | HackerRank Help Sunny and Johnny spend all their money during each trip to the Ice Cream Parlor. www.hackerrank.com 입력은 다음과 같이 받는다. 첫번째 줄은 몇번 시행할지를 적는다. 두번째 줄(m)은 두개를 합해서 나온 값을 쓴다. 세번째 줄에는 배열의 원소 개수를 쓴다. 네번째 줄에는 배열을 적는다. (2~4는 몇번 시행하는지에 따라 반복됨) 출력되는 것은 둘이 합해서 m이 되는 값의 순서가 두개 출력이 된다. 첫번째 숫자가 1 네번째 숫자가 3이므로 둘의 합은 4가 된다. 따라서 이..

코딩테스트/HackerRank

[HackerRank] Left Rotation

www.hackerrank.com/challenges/array-left-rotation/problem Left Rotation | HackerRank Given an array and a number, d, perform d left rotations on the array. www.hackerrank.com 입력한 숫자만큼 배열을 왼쪽으로 옮기는 문제 입력을 받을때 다음과 같이 입력을 받는다. 첫번째 숫자는 배열의 크기, 두번째 숫자는 이동할 숫자이고 두번째 줄의 숫자들은 배열의 원소들이다. 이 예시는 다음과 같이 작동한다. 이 문제는 rotateLeft라는 함수의 코드만 작성하면 된다. 이 함수는 배열의 숫자를 이동시키고 배열을 리턴하는 함수이다. d는 이동할 숫자, arr_count는 배열 크기,..

코딩테스트/HackerRank

[HackerRank] Tree: Inorder Traversal

www.hackerrank.com/challenges/tree-inorder-traversal/problem Tree: Inorder Traversal | HackerRank Print the inorder traversal of a binary tree. www.hackerrank.com 오랜만의 hackerRank에서의 tree문제이다. Inorder Traversal은 중위 순회이다. 중위 순회는 중위 수식과 비슷하다고 생각하면 된다. 가운데의 것이 가운데로 오면 된다. 왼쪽->가운데->오른쪽 순이된다. (preorder : 가운데->왼쪽->오른쪽/postorder : 왼쪽->오른쪽->가운데) 왼쪽에 대해서 inOrder함수를 시행하고 가운데를 출력한 다음 오른쪽에 대해서 inOrder함수를 시행하..

코딩테스트/백준

[백준 1157] 단어 공부

www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 알파벳이 대소문자로 이루어져있고 가장 많이 나온 글자를 출력하는 문제이다. 배열의 인덱스가 대문자의 아스키코드가 된다면 글자가 몇개가 나올지를 배열에 넣을 수 있을것이다. 즉, 예를 들어 s라는 배열이 있고 단어에 a가 2개가 나왔다면 s[65]==2가 된다. 배열의 인덱스를 대문자로 만들기 위해서 입력받은 문자열에 대해 toupper함수를 사용하면 된다. 주의해야 될것이 있다. 처음에 문제를 풀 때 for문에서 조건부분에 strlen(str)..

코딩테스트/백준

[백준 1152] 단어의 개수

www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 � www.acmicpc.net solved.ac에서 브론즈 2, class 1으로 책정된 문제 문제의 내용은 다음과 같다. 1. 단어는 띄어쓰기 한 개로 구분 2. 공백이 연속해서 나오는 경우는 없다 3. 문자열의 앞과 뒤에는 공백이 있을 수도 있다. 공백이 포함되게 입력을 받고 문자열에서 공백의 개수를 구한다. 문자열의 맨 앞과 맨 뒤에 공백이 있는지 확인한다. 공백이 있으면 공백의 개수에서 -1을 해준다. 그리고 단어의 개수는 공..

코딩테스트/백준

[백준 11729] 하노이 탑 이동 순서

https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 자료구조 수업시간에 재귀를 배울 때 나온 내용 배우고 시험봤을때는 쉬웠는데 한달 동안 쉬고 봤더니 은근 까다로움 알고리즘 1번에서 3번으로 n개의 원판을 옮긴다고 하자 그렇다면 가장 큰 판을 3번으로 우선 옮겨야 할 것이다. 따라서 가장 큰 판을 제외하고 n-1개의 나머지 판들을 2번으로 옮긴다. 그리고 가장 큰 판을 3번으로 옮긴 후 2번의 n-1개 판들을 3번으로 옮기면 된다. 나..

코딩테스트/백준

[백준 2751] 수 정렬하기 2

https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 시간복잡도가 O(nlogn)인 정렬은 heap sort, merge sort, quick sort가 있다. 그중에서 merge sort로 문제를 풀어보았다. Merge Sort(합병 정렬) 처음에 백준에 제출할때 pos++, left++이런식으로 코드를 작성했는데 이렇게 했더니 틀리고 pos=pos+1, left=left+1로 썼더니 맞았다. 뭔차이점이 있는지 모르겠다. (혹시 아시는..

코딩테스트/HackerRank

[HackerRank] Tree: Height of a Binary Tree

https://www.hackerrank.com/challenges/tree-height-of-a-binary-tree/problem Tree: Height of a Binary Tree | HackerRank Given a binary tree, print its height. www.hackerrank.com 트리의 높이는 노드의 가장 큰 높이가 되므로 재귀함수를 이용하여 왼쪽 서브트리와 오른쪽 서브트리의 높이를 구한다음 그중 큰 값에 +1을 한 값을 리턴하면 된다. 문제에서는 getHeight함수 코드만 짜면 되기 때문에 이 함수 코드만 작성하였다.

ankisile
'코딩테스트' 카테고리의 글 목록 (25 Page)