프롬프트 라이브러리
함수 제작기
상세한 명세를 기반으로 Python 함수를 생성합니다.
직접 시도해 보려면 이 프롬프트를 개발자 Console에 복사하세요!
내용 | |
---|---|
System | 제공된 자연어 요청을 기반으로 Python 함수를 생성하는 것이 당신의 임무입니다. 요청에는 입력 매개변수와 예상 반환 값을 포함하여 함수의 원하는 기능이 설명될 것입니다. 주어진 명세에 따라 함수를 구현하고, 에지 케이스를 처리하고 필요한 유효성 검사를 수행하며 Python 프로그래밍의 모범 사례를 따르도록 해야 합니다. 코드에 적절한 주석을 포함하여 로직을 설명하고 다른 개발자가 구현 내용을 이해하는 데 도움을 주세요. |
User | 스도쿠 퍼즐을 풀 수 있는 함수를 만들고 싶습니다. 이 함수는 9x9 스도쿠 그리드를 입력으로 받아야 하며, 빈 셀은 0으로 표시됩니다. 함수는 백트래킹 알고리즘을 사용하여 퍼즐을 풀고 해결된 그리드를 반환해야 합니다. 퍼즐을 풀 수 없는 경우에는 None을 반환해야 합니다. 또한 함수는 입력 그리드의 유효성을 검사하여 올바른 스도쿠 퍼즐인지 확인해야 합니다. |
출력 예시
Python
def solve_sudoku(grid):
def is_valid(row, col, num):
# 현재 행과 열에서 숫자가 유효한지 확인
for i in range(9):
if grid[row][i] == num or grid[i][col] == num:
return False
# 현재 3x3 서브그리드에서 숫자가 유효한지 확인
start_row, start_col = (row // 3) * 3, (col // 3) * 3
for i in range(3):
for j in range(3):
if grid[start_row + i][start_col + j] == num:
return False
return True
def backtrack(row, col):
# 모든 셀을 채웠다면 퍼즐이 해결된 것
if row == 9:
return True
# 현재 행의 끝에 도달했다면 다음 행으로 이동
if col == 9:
return backtrack(row + 1, 0)
# 현재 셀이 이미 채워져 있다면 다음 셀로 이동
if grid[row][col] != 0:
return backtrack(row, col + 1)
# 1부터 9까지의 숫자로 현재 셀을 채우기 시도
for num in range(1, 10):
if is_valid(row, col, num):
grid[row][col] = num
if backtrack(row, col + 1):
return True
grid[row][col] = 0
# 유효한 숫자를 찾지 못했다면 백트래킹
return False
# 입력 그리드의 유효성 검사
if not all(len(row) == 9 and all(0 <= cell <= 9 for cell in row) for row in grid):
return None
# 백트래킹 알고리즘 시작
if backtrack(0, 0):
return grid
else:
return None
API 요청
import anthropic
client = anthropic.Anthropic( # defaults to os.environ.get("ANTHROPIC_API_KEY")
api_key="my_api_key",
)
message = client.messages.create(
model="claude-3-opus-20240229",
max_tokens=1000,
temperature=0,
system="제공된 자연어 요청을 기반으로 Python 함수를 생성하는 것이 당신의 임무입니다. 요청에는 입력 매개변수와 예상 반환 값을 포함하여 함수의 원하는 기능이 설명될 것입니다. 주어진 명세에 따라 함수를 구현하고, 에지 케이스를 처리하고 필요한 유효성 검사를 수행하며 Python 프로그래밍의 모범 사례를 따르도록 해야 합니다. 코드에 적절한 주석을 포함하여 로직을 설명하고 다른 개발자가 구현 내용을 이해하는 데 도움을 주세요.",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "스도쿠 퍼즐을 풀 수 있는 함수를 만들고 싶습니다. 이 함수는 9x9 스도쿠 그리드를 입력으로 받아야 하며, 빈 셀은 0으로 표시됩니다. 함수는 백트래킹 알고리즘을 사용하여 퍼즐을 풀고 해결된 그리드를 반환해야 합니다. 퍼즐을 풀 수 없는 경우에는 None을 반환해야 합니다. 또한 함수는 입력 그리드의 유효성을 검사하여 올바른 스도쿠 퍼즐인지 확인해야 합니다."
}
]
}
]
)
print(message.content)