법학적성시험(로스쿨 입학 시험)
아래와 같이 그림 없이도 이해 가능하게 프롬프트 작성
--
아래 조건들로부터 추론한 보기 ㄱ, ㄴ, ㄷ 중 옳은 것은?
조건: 크기가 모두 같고 번호가 한개씩 적혀있는 빈 상자 12개가 일렬로 나열되어있다.
상자의 번호는 좌측에서부터 1, 2, 3, 4 하나씩 커지며 가장 우측에는 12번 상자가 위치한다.
이 중 5개의 상자에 5개의 구슬 A, B, C, D, E를 담는다.
한 개의 상자에는 한 개의 구슬만 담을 수 있다.
서로 다른 두 상자 사이에 놓여 있는 상자의 개수를 그 두 상자의 '거리'로 정의한다.
예를 들면 4번 상자와 8번 상자의 거리는 3이다.
구슬이 담겨 있는 임의의 두 상자의 거리는 모두 다르다.
구슬 A와 D가 각각 담겨 있는 두 상자 사이에 구슬이 담겨있는 상자는 한 개뿐이다.
구슬 A와 E가 각각 담겨 있는 두 상자의 거리는 0이다. 구슬 B와 D가 각각 담겨있는 두 상자의 거리는 1이다.
구슬 C와 E가 각각 담겨있는 두 상자의 거리는 2이다.
보기 ㄱ: 구슬 A와 B가 각각 담겨 있는 두 상자 사이에는 구슬이 담겨 있는 상자가 없다.
보기 ㄴ: 구슬 C가 담겨있는 상자의 번호는 구슬 D가 담겨있는 상자의 번호보다 크다.
보기 ㄷ: 7번 상자와 8번 상자는 모두 비어있다.
정답 미리 공개: ㄱ <- <- 드래그
--
풀이 결과
1트
조건 4, 5를 풀이 1부터 위배해버림.
결과적으로 ㄴ만 옳다고 출력.
힌트 안주고 쌩으로 리트 시킴
--
2트
1트와 똑같이 나옴
힌트 줌 (하나의 상자에는 하나밖에 못 들어간다는 사실 명시)
--
3트
거리를 다 구해놓고
모든 거리가 다르지 않은데 다르다고 헛소리함. (이것도 ㄴ이라고 주장)
이에 대해 지적하고 리트.
--
4트
또 헛소리하면서 ㄴ이라고 해서
무작위로 찍지말고 모든 경우의 수 검토하라고 함.
그러니까 갑자기 시키지도 않은 코딩 시작 ㅋㅋ
근데 갑자기 렉걸려서 튕겨버려서
--
위에 친 맨 처음 프롬프트에
코딩을 통해서 모든 경우의 수를 검토해라 명 추가
찐 4트
(코딩 시키면 렉이 심해지는지 몇번 더 튕김)
코딩을 아래와 같이 하면서 정답을 ㄱ, ㄴ이라고 말함(결과적으로는 오답)
from itertools import combinations, permutations
# 조건에 맞는지 확인하는 함수
def is_valid(arrangement):
indices = {name: arrangement.index(name) for name in 'ABCDE'}
# 서로 다른 두 상자 사이의 거리 계산
def distance(x, y):
return abs(indices[x] - indices[y]) - 1
# 조건 확인
if distance('A', 'D') != 1:
return False
if distance('A', 'E') != 0:
return False
if distance('B', 'D') != 1:
return False
if distance('C', 'E') != 2:
return False
# 임의의 두 상자 사이의 거리가 모두 달라야 함
distances = set(distance(x, y) for x, y in combinations('ABCDE', 2))
return len(distances) == 10
# 12개의 상자 중 5개를 고르고 그 안에 구슬을 배치
boxes = list(range(12))
all_combinations = combinations(boxes, 5)
all_permutations = []
for combination in all_combinations:
empty_boxes = [i for i in range(12) if i not in combination]
for perm in permutations('ABCDE'):
arrangement = [''] * 12
for idx, box in enumerate(combination):
arrangement[box] = perm[idx]
all_permutations.append(arrangement)
# 조건에 맞는 경우를 찾음
valid_arrangements = [arr for arr in all_permutations if is_valid(arr)]
# 보기의 진위 여부를 확인
def check_ㄱ(arrangement):
index_A = arrangement.index('A')
index_B = arrangement.index('B')
between = [arrangement[i] for i in range(min(index_A, index_B) + 1, max(index_A, index_B))]
return all(x == '' for x in between)
def check_ㄴ(arrangement):
index_C = arrangement.index('C')
index_D = arrangement.index('D')
return index_C > index_D
def check_ㄷ(arrangement):
return arrangement[6] == '' and arrangement[7] == ''
# 보기의 결과를 반환
def evaluate(arrangements):
result_ㄱ = all(check_ㄱ(arr) for arr in arrangements)
result_ㄴ = all(check_ㄴ(arr) for arr in arrangements)
result_ㄷ = all(check_ㄷ(arr) for arr in arrangements)
return result_ㄱ, result_ㄴ, result_ㄷ
# 정답 확인
result_ㄱ, result_ㄴ, result_ㄷ = evaluate(valid_arrangements)
print(f"보기 ㄱ: {result_ㄱ}")
print(f"보기 ㄴ: {result_ㄴ}")
print(f"보기 ㄷ: {result_ㄷ}")
===
결과적으론 추론은 아직도 못하는듯?
참고로 코딩알못이라 마지막 코드에서는 어떤 부분에서 길을 잘못 잡았는지 못찾음
걍 내가 풀어봤는데 이거 C==EA====B=D D=B====AE==C 이렇게 좌우대칭인 두 가지 경우 나오는데 ㄴ, ㄷ 보기는 두 케이스 중 하나라도 성립하지 않는 경우가 있어서 틀렸다고 봐야하는거임?
텍스트로 준거야? 스샷으로 준거면 GPT 는 원래 아직 한글 텍스트 인식 잘 못해
내가 텍스트로 존나 많이 풀려봤는데 정답률 7,80퍼짜리 쉬운거말곤 다 틀리거나 맞춰도 헛소리하심
?-D-1-B-(3~4)-A-0-E-2-C-? 꼴이 되는데. 이 나열을 반대로 해도 되니까. ㄴ은 틀렸고, ㄷ도 경우의 수 따져 보면 8번이 A에 닿는 경우의 수가 있으니까. 틀렸고, ㄱ은 보다시피 맞았고, 그럼 남은 건 ㄱ하나. 재밌네 문제가. 근데 이게 로스쿨 30% 문제임? 그정돈가?
A랑 B 사이는 4로 고정임
양끝이 무조건 구슬이 들어가야 하나?
잘 생각해보셈
5(상자값)+0+1+2+3 또는 4= 11또는 12가 나와서
A, B 사이가 3이면 A와 C 사이의 거리랑 중복되잖음
내가 틀렸네.
근데 틀린 것을 변별하는 조건이 없네.
아 그것도 고려 해야 하구나.
이게 왜 3할이냐 규칙이 다 거리랑 사이에 있는 구슬 수라 반대로 뒤짚어도 아무 문제가 없고 그럼 c d가 숫자 우위가 반대로 뒤짚히는건데 그럼 찍어도 1번 아님 3번 아니냐?