Swift Coding Test Course, Card Game

In this course, we will tackle an algorithm problem to implement a card game using Swift. Through this problem, you can enhance your understanding of Swift and learn about approaches to algorithm problems.

Problem Description

In the card game, two players start with N cards each. Each player draws one card at a time to compare, and the player with the higher-numbered card takes both cards. Your task is to calculate the total sum of the cards taken by Player 1 at the end.

Input

  • The first line contains the number of cards N for Player 1 (1 ≤ N ≤ 1000).
  • The second line contains the N cards of Player 1, separated by spaces.
  • The third line contains the N cards of Player 2, separated by spaces.

Output

Output the total sum of the cards taken by Player 1.

Example Problem

Input

3
3 5 6
2 4 3

Output

14

Solution Process

To solve the problem, we first need to compare the cards of Player 1 and Player 2 to determine who wins each round. If Player 1 wins, they take both players’ cards. Here is a step-by-step approach to solving the problem.

Step 1: Handling Input

let n = Int(readLine()!)!
let player1Cards = readLine()!.split(separator: " ").map { Int($0)! }
let player2Cards = readLine()!.split(separator: " ").map { Int($0)! }

The code above processes the number of cards and the cards for Player 1 and Player 2. First, it receives the number of cards N, then stores each player’s cards in an array.

Step 2: Comparing Cards and Calculating Scores

To compare the cards, we use a for loop to check each pair of cards from both players. For each turn, if Player 1’s card is larger, we add the values of both cards to Player 1’s score; if Player 2’s card is larger, no value is added.

var player1Score = 0

for i in 0.. player2Cards[i] {
        player1Score += player1Cards[i] + player2Cards[i]
    }
}

Step 3: Outputting the Result

After comparing all the cards, we output Player 1’s total score.

print(player1Score)

Complete Code

let n = Int(readLine()!)!
let player1Cards = readLine()!.split(separator: " ").map { Int($0)! }
let player2Cards = readLine()!.split(separator: " ").map { Int($0)! }

var player1Score = 0

for i in 0.. player2Cards[i] {
        player1Score += player1Cards[i] + player2Cards[i]
    }
}

print(player1Score)

Considerations

This problem can be simply solved by iterating through the array and performing the necessary calculations, resulting in a time complexity of O(N). Of course, the way cards are added and the rules for winning may vary depending on the game’s rules, but the basic structure will be similar.

Conclusion

In this course, we solved a card game problem using Swift. Well-defined game rules and designing the appropriate algorithm are very useful practice for actual coding tests. Other algorithm problems can also be approached similarly, so I encourage you to practice and tackle various problems!