Skip to content

Instantly share code, notes, and snippets.

@ipkn
Created April 12, 2015 02:17
Show Gist options
  • Save ipkn/7be8f15fc177805bb1d4 to your computer and use it in GitHub Desktop.
Save ipkn/7be8f15fc177805bb1d4 to your computer and use it in GitHub Desktop.
Codejam 2015 Qual 라운드 small을 약속으로 구현해 보았습니다.
테스트개수: (단어 읽기) 숫자로
반복 1~테스트개수 의 번호 마다
답: 0
최대부끄럼지수:(단어 읽기) 숫자로
부끄럼표: 단어 읽기
남은사람: 0
반복 부끄럼표 의 부끄럼지수_글자 마다
부끄럼지수: 부끄럼지수_글자 숫자로
남은사람: 이전 남은사람 + 부끄럼지수 - 1
만약 남은사람 < 0 이면
남은사람: 0
답: 이전 답 + 1
"Case #" + (번호 글로) + ": " + (답 글로) 보여주기
테스트개수: (단어 읽기) 숫자로
약속 팬케이크들 "먹는데" 소모시간"로/으로 가능한가"
결과:거짓
반복 1~소모시간-1 의 자르는시간 마다
먹는시간:소모시간-자르는시간
남은자르는시간:자르는시간
가능한지:참
반복 팬케이크들 의 팬케이크 마다
소요시간:(팬케이크-1)/먹는시간 정수로
남은자르는시간:이전 남은자르는시간 - 소요시간
만약 남은자르는시간 < 0 이면
가능한지:거짓
반복 그만
만약 가능한지 이면
결과:참
약속 그만
반복 1~테스트개수 의 번호 마다
팬케이크_있는_접시_개수:(단어 읽기) 숫자로
팬케이크들:[]
최대팬케이크개수:0
반복 1~팬케이크_있는_접시_개수 의 횟수 마다
팬케이크개수:(단어 읽기) 숫자로
팬케이크들 뒤에 팬케이크개수 추가
만약 최대팬케이크개수 < 팬케이크개수 이면
최대팬케이크개수: 팬케이크개수
답:최대팬케이크개수
# 이거 바이너리 서치로 바꿔야 하는데 귀찮아서 (..)
반복 1~최대팬케이크개수 의 여유시간 마다
소모시간:최대팬케이크개수 - 여유시간
만약 (팬케이크들 먹는데 소모시간으로 가능한가) 이면
답:소모시간
아니면
반복 그만
"Case #" + (번호 글로) + ": " + (답 글로) 보여주기
테스트개수: (단어 읽기) 숫자로
i:[0, 1, 0, 0]
j:[0, 0, 1, 0]
k:[0, 0, 0, 1]
약속 글자 "기호화"
만약 글자 = "i" 이면
결과:i
만약 글자 = "j" 이면
결과:j
만약 글자 = "k" 이면
결과:k
약속 좌 "쿼터니언곱" 우
결과: [
좌[1]*우[1]-좌[2]*우[2]-좌[3]*우[3]-좌[4]*우[4],
좌[1]*우[2]+좌[2]*우[1]+좌[3]*우[4]-좌[4]*우[3],
좌[1]*우[3]+좌[3]*우[1]+좌[4]*우[2]-좌[2]*우[4],
좌[1]*우[4]+좌[4]*우[1]+좌[2]*우[3]-좌[3]*우[2],
]
반복 1~테스트개수 의 번호 마다
답: "NO"
입력길이:(단어 읽기) 숫자로
반복횟수:(단어 읽기) 숫자로
입력:단어 읽기
입력:이전 입력 * 반복횟수
왼쪽: [1, 0, 0, 0]
왼쪽길이: 0
왼쪽발견: 거짓
반복 입력 의 글자 마다
왼쪽:이전 왼쪽 쿼터니언곱 (글자 기호화)
왼쪽길이:이전 왼쪽길이 + 1
만약 왼쪽 = i 이면
왼쪽발견: 참
반복 그만
만약 왼쪽발견 아니면
"Case #" + (번호 글로) + ": NO" 보여주기
반복 다시
오른쪽: [1, 0, 0, 0]
오른쪽길이: 0
오른쪽발견: 거짓
반복 (입력 뒤집기) 의 글자 마다
오른쪽:(글자 기호화) 쿼터니언곱 이전 오른쪽
오른쪽길이:이전 오른쪽길이 + 1
만약 오른쪽 = k 이면
오른쪽발견: 참
반복 그만
만약 오른쪽발견 아니면
"Case #" + (번호 글로) + ": NO" 보여주기
반복 다시
가운데: [1, 0, 0, 0]
반복 입력[왼쪽길이+1~(입력 길이)-오른쪽길이] 의 글자 마다
가운데:이전 가운데 쿼터니언곱 (글자 기호화)
만약 가운데 = j 아니면
"Case #" + (번호 글로) + ": NO" 보여주기
반복 다시
"Case #" + (번호 글로) + ": YES" 보여주기
# d 는 손으로 풀어서 생략합니다 (...)
# yaksok programming language (Korean based programming language)
# 약속 프로그래밍 언어
# http://yaksok.org
# 번역을 이용해서 파이썬 기능을 훔쳐서 쓸 수 있습니다.
# 문제별 코드를 간단하기 위해 공통 코드는 여기 모아둡니다.
번역(python) "단어 읽기"
***
global line
try:
line
except:
line = []
if not line:
line = input().strip().split()
ret = line.pop(0)
return ret
***
번역(python) 글 "길이"
***
return len(글)
***
번역(python) 글 "숫자로"
***
return int(글)
***
번역(python) 글 "정수로"
***
return int(글)
***
번역(python) 숫자 "글로"
***
return str(숫자)
***
번역(python) 글 "뒤집기"
***
return reversed(글)
***
번역(python) 리스트 "뒤에" 값 "추가"
***
리스트.append(값)
***
@kimdwkimdw
Copy link

한글이 오히려 어려워 보이는건 기분탓일까요 읔

@ipkn
Copy link
Author

ipkn commented Apr 12, 2015

일단 새 언어라서 문법 강조가 안되는게 영향을 주는 것 같아요.

한글이라서 어려운 점은 어떤게 있을까요? 마음에 안드는 부분 얘기해주시면 좀더 좋은 방식에 대해 고민해볼께요.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment