Skip to content

Commit

Permalink
7번까지 문제 업로드
Browse files Browse the repository at this point in the history
  • Loading branch information
paullabkorea committed Aug 27, 2024
1 parent 4f91708 commit 88eb9de
Show file tree
Hide file tree
Showing 8 changed files with 114 additions and 32 deletions.
Binary file added src/pages/img/7-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/pages/img/7-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/pages/img/7-3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/pages/img/7-4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
22 changes: 11 additions & 11 deletions src/pages/question4.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,30 +6,30 @@
## 문제 설명


라이캣은 자바독과 긴 시간동안 배를 기다린 끝에 배에 탈 수 있었습니다. 다른 이들도 마찬가지였어요. 여정이 시작되기도 전에 육신과 마음이 모두 지친 상태가 되었습니다. 그러던 중 문제가 생겼습니다. 인원수만큼 자리가 없었던 것입니다. 서로 앉겠다고 싸우는 사건이 발생하게 됩니다. 그러는 사이 자리에는 아무도 앉지 못하는 일이 발생됩니다.
라이캣과 자바독은 오랜 기다림 끝에 드디어 배에 올랐습니다. 다른 승객들도 마찬가지로 지친 모습이었죠. 긴 대기 시간으로 인해 모두의 몸과 마음이 지쳐있었습니다. 그런데 예상치 못한 문제가 발생했어요. 승객 수보다 자리가 부족했던 것입니다. 이로 인해 자리를 차지하려는 다툼이 일어나기 시작했고, 결국 아무도 편히 앉지 못하는 상황이 되고 말았습니다.

![](./4-1.png)

라이켓은 조용히 말했어요.
라이켓은 조용히 읊조렸어요.

"상황과 환경은 그 사람이 어떤 사람인지를 드러낸다냥. 본능에 따르기 보다는 우리답게 해결하는 것이 무엇인지를 고민해야 한다냥."
"상황과 환경은 그 사람이 어떤 사람인지를 드러낸다냥. 본능에 따르기 보다는 우리답게 해결할 방법을 찾아야 한다냥."

그때 한 개구리가 나서며 말했어요.

"나는 개리라고 한다 개굴! 이러다가는 아무도 앉지 못하니 서로 돌아가며 앉을 수 있는 최선의 알고리즘을 말하고 투표하자 개굴!"
"나는 개리라 한다! 개굴! 이대로 가다간 아무도 앉지 못할 것 같으니, 모두가 돌아가며 앉을 수 있는 가장 좋은 알고리즘을 제안하고 투표하자 개굴!"

라이캣은 눈을 반짝였습니다. 설득해 동료로 삼아야할 사람이 생겼기 때문이었어요. 아무도 손을 들지 않았고 라이캣은 개리를 보며 손을 들며 말했어요.
라이캣은 눈을 반짝였습니다. 함께 협력해 뜻을 이룰 동료를 찾은 것 같았거든요. 아무도 의견을 내지 않자, 라이캣이 개리를 바라보며 손을 들었습니다.

"주목해주냥! 내게 좋은 아이디어가 있다냥!"

1. 다리가 아픈 순서대로 의자에 앉는다.
2. 종은 다음과 같다. 무척추동물, 척추동물, 어류, 양서류, 파충류, 조류, 포유류이다.
3. '종'이 같을 경우 무릎에 앉을 수 있다. 무릎에 앉을 경우 1초로 카운트한다.(hit)
4. 자리가 꽉 차있을 경우 가장 오래 앉아있던 '종'이 나가는 것이 아니라 최근에 같이 앉은 적이 없던 종이 나가게 된다. 이때 자리를 청소해야 하기 때문에 1분이 걸린다.(miss)
5. 자리에 처음 앉아야 할 때에도 청소를 해야 하기 때문에 1분이 걸린다.(miss)
6. '종(페이지)'이 리스트의 순서대로 들어왔을 때 한 번씩 앉는 시간을 구하라.
2. 동물의 종류는 다음과 같다. 무척추동물, 척추동물, 어류, 양서류, 파충류, 조류, 포유류이다.
3. 같은 '종'경우 무릎에 앉을 수 있다. 이때는 1초로 계산한다.(hit)
4. 자리가 꽉 찼을 때는 가장 오래 앉아있던 '종'이 아니라, 최근에 함께 앉은 적이 없던 '종'이 자리를 양보한다. 이때 자리를 정리하느라 1분이 걸린다.(miss)
5. 처음 자리에 앉을 때도 정리 시간이 필요해서 1분이 걸린다.(miss)
6. '종(페이지)'이 리스트의 순서대로 들어왔을 때, 한 번씩 앉는 시간을 구하라.

"LRU(Least Resently Used) 페이지 교체 알고리즘을 사용하겠다냥! LRU 알고리즘은 자리(페이지) 부재가 발생했을 경우 가장 오랫동안 함께 앉지 않은 자리(페이지)를 제거하는 알고리즘이다냥! 한마디로, 겹쳐 앉을 수 있는 동물의 자리를 보존해주겠다는 것이다냥!"
"LRU(Least Resently Used) 페이지 교체 알고리즘을 사용하겠다냥! 이 방법은 자리가 부족할 때 가장 오랫동안 함께 앉지 않은 종이 자리를 양보한다냥! 한마디로, 함께 앉을 수 있는 동물의 자리를 최대한 유지해주는 방법이다냥!"

---

Expand Down
17 changes: 11 additions & 6 deletions src/pages/question5.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,25 @@

# 제주에 남겨진 단서
## 문제 설명
라이캣은 배 위에서 개리를 만나 동료가 될만한 자질을 지녔는지 개리를 시험해보았어요. 개리는 라이캣의 시험에 기꺼히 응했고, 개리는 라이캣이 낸 시험을 통과하였습니다. 어느덧 시간이 지나 제주에 도착했어요. 제주의 끝과 끝은 일주일을 걸어야 할만큼 컸고, 어디있을지도 모를 단서를 위해 무작정 움직일 수도 없었어요.

라이캣은 배 위에서 만난 개리의 능력을 시험해 보았습니다. 개리는 기꺼이 시험에 응했고, 무사히 통과했죠. 시험 문제는 부록에 기록했습니다.

시간이 흘러 일행은 드디어 제주도에 도착했습니다. 제주도는 생각보다 훨씬 넓어서, 끝에서 끝까지 걸어가려면 일주일이나 걸릴 정도였어요. 단서를 찾기 위해 무작정 돌아다니기에는 너무나 넓은 곳이었습니다.

"파이와 썬이 이곳에 와서 무슨 생각을 했을까냥?"
"어떤 단서를, 어디다 두어야 할지 고민했겠지. 개굴!"
"만약 내가 파이와 썬이라면, '어쩌다' 찾을 수 있는 곳에 단서를 놓지 않았을 것 같다냥."

자바독이 생각에 잠겨있다가 혼잣말을 하듯 말했습니다.
잠시 후, 자바독이 생각에 잠겨 혼잣말을 했어요.

"우리가 가진 단서가 있독. 알고리즘, 보물, 파이, 썬, 제주. 제주가 가진 알고리즘, 제주의 보물, 제주의 파이, 제주의 썬."
"우리가 가진 단서가 있독. 알고리즘, 보물, 파이, 썬, 제주. 제주가 가진 알고리즘, 제주의 보물..."

셋이 동시에 외쳤습니다.
그 순간, 세 명이 동시에 외쳤습니다.
"제주의 보물!"

라이캣과 그 일행들은 제주의 보물을 탐색하기 시작합니다. 만장굴, 정방폭포, 성산일출봉, 한라산 등의 명소를 탐색하며 단서를 찾기 시작했습니다. 그러던 중 '아부 오름'에서 인위적인 돌탑을 발견합니다. 바람이 많이 부는 제주에서는 돌탑의 형상을 유지하기 쉽지 않아 하층부터 견고히 쌓는 것이 일반적이었어요. 그런데 발견한 돌탑은 듬성듬성 안에 공간이 비어있었어요. 강한 태풍이 불면 그대로 무너질 듯이요. 그럼에도 무너지지 않았다는 것은, 인위적인 힘이 가해졌다고 밖에 볼 수 없는 것이죠.
라이캣과 일행들은 제주의 유명 관광지를 돌아다니며 단서를 찾기 시작했습니다. 만장굴, 정방폭포, 성산일출봉, 한라산 등을 둘러보았죠. 그러던 중 '아부 오름'에서 특이한 돌탑을 발견했습니다.

바람이 많이 부는 제주에서는 돌탑의 형상을 유지하기 쉽지 않아 하층부터 견고히 쌓는 것이 일반적이었어요. 그런데 발견한 돌탑은 틈새가 많아 태풍을 만나면 그대로 무너질 것 같았어요. 그럼에도 무너지지 않았다는 것은, 인위적인 힘이 가해졌다고 밖에 볼 수 없는 것이죠.

"모두 이리로 와봐라냥. 단서를 찾았다냥!"

Expand Down Expand Up @@ -100,6 +105,6 @@ graph = {100: set([67, 66]),
- 82 -> 'R'
- 79 -> 'O'
- 87 -> 'W'
- 78 -> 'n'
- 78 -> 'N'

3. 변환된 문자들을 순서대로 이어 붙여 "CROWN"를 얻습니다. 같은 방식으로 작은 값을 탐색하여 "BEAT"를 얻습니다. 이 두개의 문자열을 띄어쓰기로 합쳐 "CROWN BEAT"을 반환합니다.
4 changes: 2 additions & 2 deletions src/pages/question6.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@

> 삐빅삐빅.
소울 곰이 정색을 하며 이상한 소리를 내기 시작했어요.
웃고 있던 소울곰이 갑자기 웃음기를 지우며 이상한 소리를 내기 시작했어요.

"냥?"
"혼저 옵서. 고냉이 같은 호랑이. 하지만 여기서부터는 쉽지 않을꺼라. 이 텃밭봥 단서를 찾아 보물의 위치를 알아보십서! 삐빅삐빅! NPC 모드 종료."

소울 곰은 아무일 없다는 듯이 새로온 손님들에게 커피를 팔기 시작했습니다. 순간 당황한 일행에게 정적이 흘렀지만, 문제를 풀어야 하기에 텃밭으로 향했습니다.
소울 곰은 아무일 없다는 듯이 다시 웃기 시작하더니 새로온 손님을 응대했습니다. 순간 당황한 일행에게 잠시 정적이 흘렀지만, 곧 그들은 문제를 풀기 위해 텃밭으로 향했습니다

1. 텃밭 앞에는 꽃이 심어져 있고 꽃마다 번호가 붙어 있습니다.
![](./6-1.png)
Expand Down
103 changes: 90 additions & 13 deletions src/pages/question7.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,105 @@

# 유레카
## 문제 설명
![](./7.webp)
라이캣은 업무 우선순위에 따라 일일 업무를 보고 있습니다. 리스트 안에 업무 이름과 업무 우선순위가 함께 주어졌을 때 오름차순 업무 우선순위에 따라 업무 이름을 출력해주세요.

만장굴에 도착한 일행은 동굴의 엄청난 깊이에 감탄했습니다. 박쥐를 만나고, 길을 잘못 들어 한참을 되돌아가기도 했지만 결국 일행은 동굴의 끝, 인위적으로 만들어진 문 앞에 도착했어요.

![](./7-1.png)

개리가 문을 열어보려 했지만 문은 미동도 하지 않았습니다. 라이캣, 개리, 자바독은 문을 열 수 있는 방법을 찾기 위해 문을 살펴보았습니다.

![](./7-2.png)

개리가 문에 붙어있는 장식품을 힘을주어 눌러보자 장식물이 안으로 들어갔습니다. 누른 장식물은 다시 눌러 원상복구 할 수 있었어요.

다시 자세히 살펴보니, 처음에는 보이지 않았던 6번째 소울곰 문제에서 보았던 문양들이 장식물에 세겨져 있었습니다.

라이캣은 문제를 해결할 수 있는 여러가지 알고리즘들이 머릿속에 번뜩이며 조화를 이루었습니다.

1. 각 꽃들을 행렬로 나타낸 값은 아래와 같습니다. cross의 index는 아래 그림을 참고하세요.

```python
# 입력
cross = [[[1, 5, 0, 1, 0],
[0, 1, 6, 7, 0],
[6, 2, 3, 2, 1],
[1, 0, 1, 1, 1],
[0, 2, 0, 1, 0]],
[[0, 3, 0, 1, 0],
[1, 2, 5, 4, 4],
[0, 0, 3, 0, 0],
[1, 2, 5, 0, 1],
[0, 0, 0, 0, 0]],
[[3, 0, 1, 1, 8],
[5, 0, 4, 5, 4],
[1, 5, 0, 5, 1],
[1, 2, 1, 0, 1],
[0, 2, 5, 1, 1]],
[[1, 0, 3, 3, 3],
[5, 1, 2, 2, 4],
[1, 5, 1, 2, 4],
[4, 4, 1, 1, 1],
[4, 4, 1, 1, 1]],
[[1, 2, 0, 3, 3],
[1, 2, 0, 2, 4],
[1, 2, 0, 2, 4],
[4, 2, 0, 0, 1],
[8, 4, 1, 1, 0]],
[[1, 0, 3, 0, 0],
[1, 1, 0, 2, 4],
[0, 0, 1, 2, 4],
[4, 0, 1, 0, 1],
[0, 0, 1, 0, 1]]]

# 출력
# 최단 경로를 좌표값으로 자유롭게 출력
```

2. 파이와 썬은 '8'로 표시됩니다.

3. 해당 행렬은 2차원으로 파이부터 썬까지의 최단거리를 구해야합니다.

4. 각 큐브에 세계진 값은 가중치 입니다. 이 가중치를 더해 파이에서 썬으로가는 최단거리를 구하고, 최단경로를 행렬의 좌표값으로 출력하시오.

---

## 제한 사항

- 0 ≤ 업무 우선순위 ≤ 9
- 1 ≤ 업무의 수 ≤ 9
- 업무가 없는 날은 없습니다.
- 동일한 우선순위 업무는 주어지지 않습니다.
1. 입력으로 주어지는 `cross` 리스트는 6개의 5x5 2차원 배열로 구성됩니다.
2. 각 배열의 원소는 0 이상 8 이하의 정수입니다.
3. '8'은 정확히 두 번 나타나며, 각각 파이와 썬의 위치를 나타냅니다.
4. 이동은 상하좌우 네 방향으로만 가능합니다. 대각선 이동은 불가능합니다.
5. 0은 이동할 수 없는 칸을 나타냅니다.
6. 최단 경로는 반드시 존재합니다.
7. 출력되는 좌표값은 (배열 인덱스, 행, 열) 형태로 표현됩니다.

---

## 입출력 예
## 입출력 예(수정해야 함)

| 입력 | 출력 |
| --------- | ------ |
| [['A', 3], ['B', 1], ['C', 2]] | ['B', 'C', 'A'] |
| [['A', 1], ['B', 2], ['C', 3]] | ['A', 'B', 'C'] |
입력: 문제에서 주어진 `cross` 리스트
출력:
```python
[(2, 0, 4), (2, 1, 4), (2, 2, 4), (3, 2, 4), (3, 3, 4), (4, 3, 4), (4, 4, 0)]
```

---

## 입출력 설명
[['A', 3], ['B', 1], ['C', 2]]에서 업무 우선순위대로 오름차순 정렬하면 [['B', 1], ['C', 2], ['A', 3]]이 됩니다. 여기서 업무만 출력하는 것이므로 정답은 ['B', 'C', 'A']가 됩니다.
## 입출력 설명(수정해야 함)

1. 파이의 위치는 (2, 0, 4)이고, 썬의 위치는 (4, 4, 0)입니다.
2. 출력된 리스트는 파이에서 썬까지의 최단 경로를 나타냅니다.
3. 각 좌표는 (배열 인덱스, 행, 열)을 의미합니다.
4. 이 경로를 따라 이동할 때의 총 가중치 합은 다음과 같습니다:
8 (시작) + 4 + 1 + 4 + 1 + 1 + 8 (도착) = 27
5. 이 경로가 주어진 조건에서 가장 작은 가중치 합을 가지는 최단 경로입니다.

이 경로는 다음과 같이 해석될 수 있습니다:
- 세 번째 배열(인덱스 2)의 (0,4)에서 시작
- 아래로 두 칸 이동하여 (2,4)에 도달
- 네 번째 배열(인덱스 3)로 이동하여 (2,4)에 도달
- 아래로 한 칸 이동하여 (3,4)에 도달
- 다섯 번째 배열(인덱스 4)로 이동하여 (3,4)에 도달
- 왼쪽으로 네 칸 이동하여 최종 목적지인 (4,0)에 도달

이 경로는 주어진 조건을 모두 만족하면서 가장 적은 가중치로 파이에서 썬까지 이동하는 방법을 나타냅니다.

0 comments on commit 88eb9de

Please sign in to comment.