デジタルカードゲーム
複数のデジタルカードの中から一番高いカードを1枚選び、行ごとに一番低いカードを選び、最終的に一番高いカードを選びます.
カードの数を2次元配列で与え,nとmが100未満であることを実現し,2ループで最切り上げを検索してリストに保存し,次いで最値を出力した.2次元配列の自然数があったので,もちろん2次元配列の解を試みたが,必ずしも2次元配列で解く必要がないとは限らないことに驚きました.
最初の解
一つの問題に対していろいろな解答があるのを見て、私はいつも感心します.問題を解決する前に熟考する習慣を身につけなければならない.
カードの数を2次元配列で与え,nとmが100未満であることを実現し,2ループで最切り上げを検索してリストに保存し,次いで最値を出力した.2次元配列の自然数があったので,もちろん2次元配列の解を試みたが,必ずしも2次元配列で解く必要がないとは限らないことに驚きました.
最初の解
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.StringTokenizer;
public class 숫자카드게임 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
ArrayList<Integer> list = new ArrayList<>();
int n = Integer.parseInt(st.nextToken()); // 행
int m = Integer.parseInt(st.nextToken()); // 열
int[][] cardArr = new int[n][m];
for (int i = 0; i < n; i++) {
st = new StringTokenizer(br.readLine());
for (int j = 0; j < m; j++) {
cardArr[i][j] = Integer.parseInt(st.nextToken());
int minNum = cardArr[i][0];
if (cardArr[i][j] < minNum) { // 각 행에서 최솟값 찾아서
minNum = cardArr[i][j];
list.add(minNum); // 리스트에 저장
}
}
}
Collections.sort(list);
System.out.println(list.get(list.size() - 1)); // 찾은 최솟값 중 최댓값 출력
}
}
2番目の解
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class 숫자카드게임 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken()); // 행
int m = Integer.parseInt(st.nextToken()); // 열
int result = 0;
for (int i = 0; i < n; i++) {
st = new StringTokenizer(br.readLine());
int minNum = 10001;
for (int j = 0; j < m; j++) {
int cardNum = Integer.parseInt(st.nextToken());
minNum = Math.min(minNum, cardNum); // 현재 줄에서 가장 작은 수 찾기
}
result = Math.max(result, minNum); // 작은 수 중에서 큰 수 찾기
}
System.out.println(result);
}
}
行の個数に応じて数字を入力し、列の個数に応じてmin()メソッドを使用して最大値を更新し、行の個数に応じて繰り返しresult変数に最値を格納します.一つの問題に対していろいろな解答があるのを見て、私はいつも感心します.問題を解決する前に熟考する習慣を身につけなければならない.
Reference
この問題について(デジタルカードゲーム), 我々は、より多くの情報をここで見つけました https://velog.io/@im_lily/숫자-카드-게임-3szrsfgbテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol