(Swift) 백준 2804 크로스워드 만들기

SteadySlower·2022년 8월 10일
0

Coding Test

목록 보기
118/298

2804번: 크로스워드 만들기

문제 풀이 아이디어

- 자료구조/알고리즘
    : String에서 반복문 활용하기 (Array로 바꾸기)
- 풀이법
    1. 이중반복문으로 교차되는 열과 행을 찾습니다.
    2. 이중반복문 + 분기문으로 결과물을 출력합니다
        : 교차되는 열에는 문자열 A를
        : 교차되는 행에는 문자열 B를
				: 나머지는 "."을 출력한다.

코드

// String을 Array로 바꾸어서 반복문을 돌 수 있도록 한다.
let stringArrays = readLine()!.split(separator: " ").map { Array($0) }
let stringA = stringArrays[0]
let stringB = stringArrays[1]

// 각각 겹치는 글자가 만나는 부분을 찾는다.
var row = 0
var column = 0
outerLoop: for j in 0..<stringA.count { //⭐️ A에서 가장 먼저 등장하는 것이 기준이므로 A 먼저 탐색
    for i in 0..<stringB.count {
        if stringA[j] == stringB[i] {
            row = i
            column = j
            break outerLoop //👉 먼저 나온 것이 기준이므로 찾으면 break
        }
    }
}

// 출력한다
    // 겹치는 글자가 있는 행에 string1을 출력하고
    // 겹치는 글자가 있는 열에 string2를 출력한다.
for i in 0..<stringB.count {
    for j in 0..<stringA.count {
        if i == row {
            print(stringA[j], terminator: "")
        } else if j == column {
            print(stringB[i], terminator: "")
        } else {
            print(".", terminator: "")
        }
    }
    print()
}
profile
백과사전 보다 항해일지(혹은 표류일지)를 지향합니다.

0개의 댓글