목록CodingTest (430)
기록방
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/vHjt4/btrQXgcJYg0/AjK94E0gG5wdWJ7D4q6UW0/img.png)
👉 문제링크 5566번: 주사위 게임 상근이는 혼자 보드 게임을 하고 있다. 이 보드 게임의 보드는 N칸으로 이루어져 있고, 출발점은 1칸, 도착점은 N칸이다. 각 칸에는 지시 사항이 적혀있다. 지시 사항은 말을 얼만큼 이동해야 하 www.acmicpc.net 🔸 문제 분석 🔸 보드 게임의 정보를 입력받고, 주사위를 던진 결과를 받았을때, 몇 번째로 주사위를 던졌을때 게임이 끝나는지 출력한다. 보드 게임의 정보를 배열에 저장한다. 주사위 던진 결과를 하나씩 받으며 계산한다. 🔸 코드 🔸 import sys input = sys.stdin.readline n, m = map(int,input().split()) board = [0] * n for i in range(n): board[i] = int(inp..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bL1UWQ/btrQPDs6Kux/hVJwqBS1mGNJKJqASSuiIk/img.png)
👉 문제링크 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1 www.acmicpc.net 🔸 문제 분석 🔸 이름, 국어, 영어 수학을 입력받고 문제에 제시된 대로 정렬 후 이름을 출력한다. 4가지 조건에 따른 사용자 지정 정렬이 필요하다. 정렬을 위한 클래스를 만들고 Comparable인터페이스를 상속해 compareTo 메소드를 오버라이드한다. 🔸 코드 🔸 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReade..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dcv4SN/btrQOAwcPSC/kwNypZk99l6DlvXxgD27F0/img.png)
👉 문제링크 2535번: 아시아 정보올림피아드 첫 번째 줄에는 대회참가 학생 수를 나타내는 N이 주어진다. 단, 3 ≤ N ≤ 100이다. 두 번째 줄부터 N개의 줄에는 각 줄마다 한 학생의 소속 국가 번호, 학생 번호, 그리고 성적이 하나의 빈칸을 사 www.acmicpc.net 🔸 문제 분석 🔸 대회 결과가 주어지면 점수 순으로 내림차순 정렬한다. 1, 2, 3등 순으로 금메달, 은메달, 동메달을 줄 수 있는데, 한 국가에서 메달을 최대 2개 받을 수 있다. 🔸 코드 🔸 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/9dfmU/btrQEr7BK42/VYOoIcKkMoC4Tw1HSEvq31/img.png)
👉 문제링크 1377번: 버블 소트 첫째 줄에 N이 주어진다. N은 500,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 A[1]부터 A[N]까지 하나씩 주어진다. A에 들어있는 수는 1,000,000보다 작거나 같은 자연수 또는 0이다. www.acmicpc.net 🔸 문제 분석 🔸 버블 정렬의 swap이 한 번도 일어나지 않은 루프가 언제인지 알아내는 문제이다. 버블 정렬의 이중 for문에서 안쪽 for문 전체를 돌 때 swap이 일어나지 않았다는 것은 이미 모든 데이터가 정렬됐다는 의미이고, 프로세스를 바로 종료해서 시간 복잡도를 줄일 수 있다. 하지만 이 문제는 N의 최대 범위가 500,000이므로 버블 정렬로 문제를 풀면 시간 초과이다. 안쪽 for문이 몇 번 수행됐는지 구하는 다..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bXokkM/btrQCiDLJVK/stm00TxNrAWlBREurxUy1k/img.png)
👉 문제링크 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 🔸 문제 분석 🔸 N의 최대 범위가 1,000으로 매우 작기 때문에 O(n^2) 시간 복잡도 알고리즘으로 풀 수 있다 버블 정렬의 시간 복잡도가 O(n^2)이므로 버블 정렬 알고리즘을 이용해 정렬해도 시간 복잡도 안에서 문제를 해결할 수 있다 🔸 코드 🔸 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(Sys..