1일 차: 리스프가 아닙니다(2부).
4030 단어 goadventofcodetddchallenge
문제를 살펴보겠습니다.
--- Part Two ---
Now, given the same instructions, find the position of the
first character that causes him to enter the basement
(floor -1).
The first character in the instructions has position 1,
the second character has position 2, and so on.
For example:
) causes him to enter the basement at character position 1.
()()) causes him to enter the basement at character position 5.
What is the position of the character that causes Santa to
first enter the basement?
그래서 이것은 매우 간단할 것입니다. 우리는 이미 이 도전을 완수하는 데 필요한 모든 조각을 가지고 있습니다.
문자열 조각을 반복하는 동안 해야 할 일은 바닥 값이
-1
인지 확인하고 그렇다면 해당 문자의 인덱스를 반환하는 것입니다.이제 우리는 첫 번째 인스턴스에서만 이 작업을 수행하기를 원하므로 아마도 지하층을 이미 방문했는지 여부를 확인하고 싶을 것입니다.
기존 코드를 수정하여 기본 기능이 다음과 같이 보이도록 합시다.
func main() {
var result = 0
var basementHit = false
input := LoadInput("./input.txt")
slice := strings.Split(input, "")
for i, v := range slice {
switch v {
case "(":
result = IncrementByOne(result)
case ")":
result = DecrementByOne(result)
}
if result == -1 && basementHit == false {
basementHit = true
// we `+1` because the problem states that
// the first char is at index 1
fmt.Println(i + 1)
}
}
fmt.Println(result)
}
따라서 이 특정 문제 및 입력 데이터에 대해 내 콘솔은 산타가 지하실에 처음 들어가는 시간이 캐릭터 1797이라고 알려줍니다.
답안 상자에 입력하면 성공 메시지가 표시됩니다!
That's the right answer! You are one gold star
closer to powering the weather machine.
그렇게 Advent of Code 2015가 완성된 첫날입니다. 일반적으로 날이 갈수록 문제가 더 어려워지지만 계속해서 문제를 해결하고 가능한 한 많은 문제에 답할 수 있도록 최선을 다하겠습니다.
Reference
이 문제에 관하여(1일 차: 리스프가 아닙니다(2부).), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/damiensedgwick/day-1-not-quite-lisp-part-2-8gd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)