import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int[] arr = new int[9];
int max = arr[0]; // 최댓값을 담을 변수
int index = 0; // 최댓값의 위치를 담는 변수
for(int i=0; i < arr.length; i++){
arr[i] = sc.nextInt();
if(arr[i] > max){
max = arr[i];
index = i+1;
}
}
System.out.println(max);
System.out.println(index);
sc.close();
}
}
💡 Java에서 int형 배열은 선언되면 기본적으로 0으로 초기화됨
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int max = 0; // 최댓값을 담을 변수
int index = 0; // 최댓값의 위치를 담는 변수
for(int i=0; i < 9; i++){
int value = Integer.parseInt(br.readLine());
if(value > max){
max = value;
index = i+1;
}
}
System.out.println(max);
System.out.println(index);
br.close();
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int[] arr = new int[9];
int max = arr[0]; // 최댓값을 담을 변수
int index = 0; // 최댓값의 위치를 담는 변수
for(int i=0; i < arr.length; i++){
arr[i] = Integer.parseInt(br.readLine());
if(arr[i] > max){
max = arr[i];
index = i+1;
}
}
sb.append(max).append("\n").append(index);
System.out.println(sb);
br.close();
}
}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int[] arr = new int[9];
int max = arr[0]; // 최댓값을 담을 변수
int index = 0; // 최댓값의 위치를 담는 변수
for(int i = 0 ; i < 9 ; i++) {
arr[i] = Integer.parseInt(br.readLine());
if(arr[i] > max){
max = arr[i];
index = i+1;
}
}
br.close();
bw.write(max + "\n" + index);
bw.flush();
bw.close();
}
}
const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n').map(Number);
let max = input[0]; // 초기 최댓값을 배열의 첫번째 요소로 설정
let index = 0;
for(let i=1; i < 9; i++){ // 배열의 두번째 요소부터 아홉번째 요소까지 검사
if(input[i] > max){
max = input[i]; // 더 큰 값이 나오면 최댓값 업데이트
index = i; // 해당 최댓값의 index 기록
}
}
console.log(max);
console.log(index+1); // index는 N-1번째이므로 콘솔에 출력할 때 +1 해줘야 함
const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n').map(Number);
let max = 0;
let index = 0;
for(let i=0; i < 9; i++){ // 배열의 첫번째 요소부터 마지막 요소까지 검사
if(input[i] > max){
max = input[i];
index = i; // index = i+1;
}
}
console.log(max);
console.log(index+1); // console.log(index);
const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n').map(Number);
let max = Math.max(...input);
console.log(max);
console.log(input.indexOf(max) + 1);
💡 Math.max() → 입력값으로 받은 0개 이상의 숫자 중 가장 큰 숫자를 반환하는 함수
console.log(Math.max(1, 3, 2)); > 출력 결과 : 3 const array1 = [1, 3, 2]; console.log(Math.max(...array1)); > 출력 결과 : 3
💡 스프레드 연산자 (
...
)
→ 배열, 문자열, 객체 등 반복 가능한 객체를 개별 요소로 분리 할 수 있음// Array let arr1 = [1, 2, 3, 4, 5]; let arr2 = [...arr1, 6, 7, 8, 9]; console.log(arr2); // [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ] // String let str1 = 'paper block'; let str2 = [...str1]; console.log(str2); // [ "p", "a", "p", "e", "r", " ", "b", "l", "o", "c", "k" ]
💡 indexOf() → 배열에서 요소의 인덱스를 반환하는 함수
Array.indexOf(searchElement[, fromIndex])
searchElement
: 배열에서 찾을 요소, 대소문자를 구분함fromIndex
: 검색을 시작할 인덱스 (생략 시 default값은 0임)- 배열에서 인수로 전달된 요소를 찾아 첫 번째로 검색된 요소의 인덱스를 반환
- 인수로 전달된 요소를 찾을 수 없다면 -1을 반환
arr = []
for i in range(9) :
arr.append(int(input()))
print(max(arr))
print(arr.index(max(arr)) + 1)
💡 index() → List에서 지정된 요소의 인덱스를 반환하는 메서드
list.index(element[, start, end])
element
: 검색할 요소start
: 시작 위치end
: 끝- 처음 검색된 위치를 반환
- 요소를 찾을 수 없으면 ValueError 발생
💡 append() → 리스트의 끝에 새로운 요소를 추가하는 함수
list.append(x)
arr = [int(input()) for _ in range(9)]
print(max(arr))
print(arr.index(max(arr)) + 1)
💡 List comprehension (리스트 컴프리헨션)
→ 리스트를 생성하는 짧고 간결한 방법
반복문, 조건문을 사용하여 리스트를 초기화하는 방법
[표현식 for 항목 in iterable]
- 표현식 : 리스트에 포함될 항목을 나타내는 표현식
- 항목 : iterable에서 가져온 요소를 의미
반복을 수행하되, 변수 값을 굳이 사용할 필요가 없을 때 언더스코어(_
) 사용- iterable : 리스트, 튜플, 집합, 문자열 등과 같이 반복 가능한 객체
even_numbers = [x for x in range(10) if x % 2 == 0] // 0부터 9까지의 숫자를 반복하면서, 각 숫자가 짝수인지를 검사하여 짝수인 경우에만 리스트에 포함시킴
- 컴프리헨션(Comprehension)
: 파이썬의 자료구조(list, dictionary, set)에 데이터를 좀 더 쉽고 간결하게 담기 위한 문법
여기서 '쉽고 간결하게' 데이터를 담는 방법이란 반복문과 조건문을 결합하여 하나의 구문으로 만들어 담는 것을 의미
🔎 해당 코드가 불가능한 이유?
arr = list(map(int, input().split('\n')))
- 여러 줄에 걸쳐서 입력받을 시 input() 함수를 통해 한 줄씩 입력을 받아야 함
- 개행 문자('\n')을 기준으로 입력을 나누면 여러 줄에 걸쳐 입력을 받는 것이 아니라 한 줄에 모든 입력이 들어오게 됨