이전 주제 보기 :: 다음 주제 보기 |
글쓴이 |
메시지 |
김재윤
가입: 2017년 9월 13일 올린 글: 10
|
올려짐: 2017년9월25일 14:29 주제: 2-4 질문입니다. |
|
|
2-4에서 예시로 들어주신 두 케이스에 대해 질문드립니다. 아래에 비슷한 질문을 해 주신 분과 답변이 있는데, 읽어 봐도 잘 이해가 되지 않아서 다시 한번 질문드립니다.
1) 맞는 것
AREA("a", CONNECT(STATION "a", AREA("b", STATION "a")))
2) 틀린 것
AREA("a", CONNECT(STATION "a", AREA("b", STATION "c")))
AREA("b", STATION "a") 와 AREA("b", STATION "c")는 둘 다 틀린 metro인데
왜 1)은 맞고 2)는 틀린가요?
2-4 문제가 직관적으로 와 닿지 않는데, 예시로 들어주신 두 케이스를 비교해 보면 이해가 될 것 같습니다. |
|
위로 |
|
|
하비홍
가입: 2017년 9월 7일 올린 글: 8
|
올려짐: 2017년9월25일 15:05 주제: |
|
|
역이 제대로 생겼는지는 해당 역을 감싸는 바깥쪽 AREA에 따라 결정되기 때문입니다.
주어진 예시에서 metro가 제대로 생겼는지는 다음처럼 확인됩니다.
1) 역이 2개가 있습니다.
왼쪽 역 "a"은 역을 감싸는 CONNECT 바깥쪽 AREA "a"가 존재하니 괜찮습니다.
오른쪽 역 "a" 바로 바깥쪽 AREA는 "b"이지만 그 역을 감싸는 CONNECT 바깥쪽 AREA는 "a"이니 괜찮습니다.
2) 역이 2개가 있습니다.
왼쪽 역 "a"은 역을 감싸는 CONNECT 바깥쪽에 AREA "a"가 존재하니 괜찮습니다.
오른쪽 역 "c" 바로 바깥쪽 AREA는 "b"이고 그 역을 감싸는 CONNECT 바깥쪽 AREA는 "a"입니다. 바깥에는 아무 것도 없습니다. 따라서 역 바깥에 AREA "c"가 존재하지 않으므로 잘못된 metro입니다. |
|
위로 |
|
|
김재윤
가입: 2017년 9월 13일 올린 글: 10
|
올려짐: 2017년9월25일 16:09 주제: |
|
|
문제의 spec에 따르면 AREA(역 이름, 지역)으로 되어 있는데 AREA(지역, 역 이름)으로 설명해주신 걸로 이해됩니다. 제가 아직 이해를 잘못 한 건 가요, 아니면 프로젝트 스펙이 이상한건가요? |
|
위로 |
|
|
김성국17
가입: 2017년 9월 15일 올린 글: 16
|
올려짐: 2017년9월25일 22:52 주제: |
|
|
Station "x"는 Area "x"에 enclose 되어있어야 한다는 의미입니다.
Enclose 되어 있다는건 꼭 AREA("a", STATION "a") 처럼 직접적인 포함관계만을 의미하는 것이 아니라,
AREA("a", ( ... (STATION "a")... )) 처럼 그 안 어딘가에만 포함되어 있으면 됩니다.
이는 마치 아래와 같은 C프로그램에서 x + 1의 x가 자유변수가 아닌 것과 같은 이치입니다. x가 사용되는 블락에서 x가 직접적으로 선언된 것은 아니지만, 이를 포함하는 상위 블락 어딘가에서 x가 선언이 되어있으니 자유 변수가 아니겠죠?
코드: |
{
int x = 1;
...
{
...
{
int y = x + 1;
}
}
}
|
|
|
위로 |
|
|
김성국17
가입: 2017년 9월 15일 올린 글: 16
|
올려짐: 2017년9월25일 23:06 주제: |
|
|
C프로그램의 비유에서 착안해보았는데, 예들을 뭔가 다음과 같이 표현할 수 있겠네요.
1) AREA("a", CONNECT(STATION "a", AREA("b", STATION "a")))
코드: |
a {
{
a;
}
{
b {
a;
}
}
}
|
a; 둘다 a라는 지역({})안에 포함되어 있습니다.
2) AREA("a", CONNECT(STATION "a", AREA("b", STATION "c")))
코드: |
a {
{
a;
}
{
b {
c;
}
}
}
|
이 경우 c;를 감싸는 c {...}가 없습니다. |
|
위로 |
|
|
김재윤
가입: 2017년 9월 13일 올린 글: 10
|
올려짐: 2017년9월26일 17:43 주제: |
|
|
덕분에 이해 되었습니다, 감사합니다! |
|
위로 |
|
|
|