본문 바로가기

분류 전체보기293

[알고리즘 문제] 가장 큰 곱 (Python / 파이썬) 문제 유니는 오늘 계단수라는 표현을 배웠다. 계단수란 123, 34, 6789처럼 10진수로 표현한 수의 각 자릿수가 1씩 증가하는 형태의 수를 말한다. 54, 35, 9012 등은 계단수가 아니다. 계단수를 직접 만들어보고 싶었던 유니는 우선 길이가 N인 수열을 만들었다. 이 수열에서 서로 다른 위치에 있는 두 수의 곱이 계단수가 되는 경우를 찾고, 그 중 가장 큰 계단수가 어떤 값인지 계산해 보려고 한다. 그런데 유니가 계산하기에 수열의 길이가 너무 길다. 유니 대신 위 내용을 계산해주는 프로그램을 작성해보자. 만약 두 수의 곱이 계단수가 되는 경우가 없다면 -1을 출력한다. 입력 첫째 줄에 테스트케이스의 수 T가 주어진다.. 각 테스트케이스의 첫 줄에 N이 주어진다. 각 테스트케이스의 두번째 줄에 .. 2022. 5. 12.
[알고리즘 문제] 동전 뒤집기 (Python / 파이썬) 문제 유니는 친구들과 동전 뒤집기 놀이를 하고 있다. 동전 뒤집기 놀이는 다음과 같은 방식으로 진행된다. 1. N*N의 정사각형 모양으로 동전을 배치한다. 이때, 각 동전의 윗면이 앞면일지 뒷면일지는 무작위로 결정한다. 2. 가장 왼쪽 위에 있는 동전과 원하는 위치의 동전을 두 꼭짓점으로 하는 직사각형에 포함된 동전을 모두 뒤집는다. 3. 모든 동전이 앞면이 될 때까지 2번 작업을 반복한다. 초기 동전 상태가 주어질 때, 2번 작업을 최소 몇 번 해야 하는지 구하여라. 입력 첫째 줄에 N이 주어진다. 둘째 줄부터 N개의 줄에 동전의 초기 상태가 주어진다. 0은 앞면을, 1은 뒷면을 의미한다. ( 1≤N≤10) 출력 모든 동전을 앞면으로 만들기 위해 뒤집는 최소 횟수를 출력한다.​ 문제 풀이 NxN 정사각.. 2022. 5. 12.
[알고리즘 문제] inequal (Python / 파이썬) 문제 두 종류의 부등호 기호 ‘’가 k 개 나열된 순서열 A가 있다. 우리는 이 부등호 기호 앞뒤에 서로 다른 한 자릿수 숫자를 넣어서 모든 부등호 관계를 만족시키려고 한다. 예를 들어, 제시된 부등호 순서열 A가 다음과 같다고 하자. A ⇒ 부등호 기호 앞뒤에 넣을 수 있는 숫자는 0부터 9까지의 정수이며 선택된 숫자는 모두 달라야 한다. 아래는 부등호 순서열 A를 만족시키는 한 예이다. 3 1 7 0 이 상황에서 부등호 기호를 제거한 뒤, 숫자를 모두 붙이면 하나의 수를 만들 수 있는데 이 수를 주어진 부등호 관계를 만족시키는 정수라고 한다. 그런데 주어진 부등호 관계를 만족하는 정수는 하나 이상 존재한다. 예를 들.. 2022. 5. 12.
[알고리즘 문제] 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.