본문 바로가기

알고리즘49

[알고리즘 문제] tobin (Python / 파이썬) 문제 두 정수 n, k를 입력받아 k개의 1을 가진 n자리 이진 패턴을 출력하는 프로그램을 작성하세요. 입력 두 정수 n, k가 입력으로 주어진다. ( 0 < n k: # 1이 k개보다 많아지면 return # 더 탐색할 필요 없음 if index == n: # n자리라면 if count == k: # 1의 개수가 k인지 확인 # 맞다면 출력 for i in range(n): print(array[i], end = '') print() return # 내림차순으로 출력하기 위해 1먼저 삽입 array[index] = 1 binary(index + 1, count + 1) # 다음 인덱스, 1의 개수 증가시켜 넘겨줌 array[index] = 0 binary(index + 1, count) # 다음 인덱스.. 2022. 5. 12.
[알고리즘 문제] 직사각형 완성하기 (Python / 파이썬) 문제 직사각형을 좋아하는 유니는 좌표평면 위에 직사각형 하나를 그렸다. 이 직사각형의 각 변은 x축에 평행하거나 y축에 평행하도록 그려졌다. 어느날 직사각형보다 직각삼각형을 좋아하는 지니가 유니의 직사각형의 네 꼭짓점 중 하나를 지워버렸다. 유니가 다시 직사각형을 만들 수 있도록 남아있는 세 꼭짓점의 좌표를 입력하면 지니가 지운 점의 좌표를 알려주는 프로그램을 작성하시오. 입력 첫째 줄에 테스트케이스의 수 T가 주어진다.. 각 테스트케이스의 첫 줄에 x1, y1, x2, y2, x3, y3가 공백으로 구분되어 주어진다. 이는 남은 세 점의 좌표가 각각 (x1, y1), (x2, y2), (x3, y3)임을 의미한다. 모든 점의 좌표는 1 이상 1,000,000 이하의 자연수다. ( 1 ≤ T ≤ 10 ).. 2022. 5. 11.
[알고리즘 문제] 문자열 압축2 (Python / 파이썬) 문제 유니는 압축된 문자열을 갖고 있다. 압축된 문자열이란 어떤 문자열에서 연속된 문자가 존재하면 그 문자들을 연속 등장 횟수와 해당 문자 하나로 바꿔서 만든 문자열을 말한다. 예를들어 원본 문자열이 AAABBBBBCAA였다면 3A5BC2A로 압축된다. 이는 A가 세 번 등장한 후 B가 다섯 번 등장하고, C가 한 번 A가 두 번 등장함을 의미한다. 여기서 C처럼 연속으로 한 번만 등장한 문자는 1을 적지 않는다. 압축된 문자열이 주어질 때 원본 문자열을 출력하는 프로그램을 작성하시오. 원본 문자열에서 10번 이상 연속으로 등장하는 문자는 없다는 것이 보장된다. 입력 첫째 줄에 테스트케이스의 수 T가 주어진다.. 각 테스트케이스의 첫 줄에 압축된 문자열이 주어진다. 압축된 문자열의 길이는 2,000 이하.. 2022. 5. 11.
[알고리즘 문제] 해싱2 (Python / 파이썬) 문제 유니는 해싱에 대해 배우고 있다.길이가 N인 수열 A를 길이가 M인 해싱수열 B를 이용해 해싱하는 과정은 다음과 같이 진행된다. A의 0~M-1번 인덱스의 값을 B의 0~M-1번 인덱스의 값과 순서대로 곱한 뒤 그 결과를 모두 더한다.A의 1~M번 인덱스의 값을 B의 0~M-1번 인덱스의 값과 순서대로 곱한 뒤 그 결과를 모두 더한다.... 위 과정의 결과들을 나열하면 B를 이용해 A를 해싱했다고 볼 수 있다.수열 A, B가 주어질 때 해싱 결과 중 가장 큰 값을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트케이스의 수 T가 주어진다.. 각 테스트케이스의 첫 줄에 N, M이 공백으로 구분되어 주어진다. 각 테스트케이스의 두번째 줄에는 수열 A가 공백으로 구분되어 주어지고, 세번째 줄에는 수.. 2022. 5. 11.