Skip to content

Commit 2ca3552

Browse files
committed
[Bronze I] Title: DNA 해독, Time: 128 ms, Memory: 81520 KB -BaekjoonHub
1 parent 84551f6 commit 2ca3552

2 files changed

Lines changed: 16 additions & 15 deletions

File tree

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
1+
import Foundation
2+
13
let decryptTable = [[0, 2, 0, 1],
24
[2, 1, 3, 0],
35
[0, 3, 2, 1],
46
[1, 0, 1, 3]]
5-
let dnaNumberMap = ["A":0, "G":1, "C":2, "T":3]
6-
let numberDnaMap = [0:"A", 1:"G", 2:"C", 3:"T"]
7+
let dnaNumberMap: [String.Element:Int] = ["A":0, "G":1, "C":2, "T":3]
8+
let numberDnaMap: [Int:String.Element] = [0:"A", 1:"G", 2:"C", 3:"T"]
79

8-
var stack = [Int]()
910

1011
_=readLine()
11-
var dna = readLine()!.map { dnaNumberMap[String($0)]! }
12+
var dna = readLine()!
1213

13-
while !dna.isEmpty {
14-
let j = dna.popLast()!
15-
if stack.isEmpty {
16-
stack.append(j)
14+
var result: String.Element = " "
15+
for i in dna.indices.reversed() {
16+
if result == " " {
17+
result = dna[i]
1718
continue
1819
}
19-
let k = stack.popLast()!
20-
let f = decryptTable[j][k]
21-
stack.append(f)
20+
let k = dnaNumberMap[dna[i]]!
21+
let p = dnaNumberMap[result]!
22+
let j = decryptTable[k][p]
23+
result = numberDnaMap[j]!
2224
}
23-
let answer = numberDnaMap[stack.popLast()!]!
24-
print(answer)
25+
print(result)

백준/Bronze/1672. DNA 해독/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44

55
### 성능 요약
66

7-
메모리: 77904 KB, 시간: 136 ms
7+
메모리: 81520 KB, 시간: 128 ms
88

99
### 분류
1010

1111
구현, 시뮬레이션, 문자열
1212

1313
### 제출 일자
1414

15-
2025년 5월 14일 21:57:40
15+
2025년 5월 14일 22:06:31
1616

1717
### 문제 설명
1818

0 commit comments

Comments
 (0)