전체 글

전체 글

    Codility - Cyclic Rotation // C++

    Codility - Cyclic Rotation // C++

    문제 An array A consisting of N integers is given. Rotation of the array means that each element is shifted right by one index, and the last element of the array is moved to the first place. For example, the rotation of array A = [3, 8, 9, 7, 6] is [6, 3, 8, 9, 7] (elements are shifted right by one index and 6 is moved to the first place). The goal is to rotate array A K times; that is, each eleme..

    Codility - Binary Gap // C++

    Codility - Binary Gap // C++

    문제 A binary gap within a positive integer N is any maximal sequence of consecutive zeros that is surrounded by ones at both ends in the binary representation of N. For example, number 9 has binary representation 1001 and contains a binary gap of length 2. The number 529 has binary representation 1000010001 and contains two binary gaps: one of length 4 and one of length 3. The number 20 has binar..

    백준 1157번 단어 공부 // Python

    백준 1157번 단어 공부 // Python

    문제 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다. 풀이 먼저, 입력받을 문자열은 대소문자 구분이 없고 정답은 대문자로 출력해야 하기 때문에 입력과 동시에 upper을 통하여 대문자로 바꿨다. 알파벳 별로 사용 횟수를 세기 위하여 count라는 list를 사용하여 횟수를 셌다. 마지막으로 count에서 max 값을 찾아줬는데, max 값이 같은 경우가 있는지 확인하여 check라는 변수를 이용했다. check가 false이고, max 값과 같은 경우..

    백준 2675번 문자열 반복 // Python

    백준 2675번 문자열 반복 // Python

    문제 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다. QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다. 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다. 풀이 파이썬에서 공백을 기준으로 입력 받는것을 처리할줄 몰랐기에, 한 줄 ..

    백준 10809번 알파벳 찾기 // Python

    백준 10809번 알파벳 찾기 // Python

    문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 풀이 파이썬 내의 문자열에서 기본적으로 사용할 수 있는 find를 이용해서 문제를 풀었다. a-z까지 들어있는 문자열을 하나 선언해서 for문으로 하나씩 입력받은 문자열에서의 위치를 찾아냈다. 코드 더보기 s = input() alphabet = 'abcdefghijklmnopqrstuvwxyz' for i in alphabet: print(s.find(i))

    백준 11654번 아스키 코드 // Python

    백준 11654번 아스키 코드 // Python

    문제 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. 풀이 C언어에서는 char 변수를 printf("%d", ch)와 같이 사용하면 아스키 코드가 출력되지만, 파이썬에서는 다른 함수가 존재한다. ord 함수와 chr 함수인데, ord 함수는 문자를 아스키 코드로 chr 함수는 아스키 코드를 문자로 바꿔준다. (문자열이 아닌 문자만 변환 가능) 따라서 입력받은 문자를 ord 함수를 통하여 아스키 코드로 출력하면 된다. 코드 더보기 Python ch = input() print(ord(ch)) C++ scanf("%c", &ch); printf("%d", ch);

    01. 앞뒤가 같은 10진수 만들기

    01. 앞뒤가 같은 10진수 만들기

    문제 앞뒤가 같은 수를 대칭수, 회문수라고 한다. 10진수, 2진수, 8진수 어느 것으로도 대칭수가 되는 수 중, 10진수의 10 이상의 최솟값을 구하라. 풀이 먼저, 2진수에서 대칭이 되려면 제일 앞자리와 뒷자리 모두가 1이 되어야 하는데, 2진수에서 제일 뒷자리가 1이라는 것은 홀수를 의미하므로 홀수인 수에서만 조건을 만족하는지 확인하면 된다. toBin과 toOct는 숫자를 각각 2진수, 8진수로 변환하는 함수이다. 10진수를 n진수로 변환하는 방법은 해당 수가 n보다 작을때까지 나누면서 나오는 나머지를 뒤부터 써내려 가면 된다. => str.insert(0, temp) 부분으로 새롭게 나오는 나머지를 제일 앞에 추가함으로 구현 코드 더보기 #include #include using namespac..