Coding test/코딩테스트
* 시간 제한이 매우 짧다 0.5초 * M개 중에서 N개를 조합하는 문제 (nCr) * 조합의 경우의 수 구하기..! 오~~ 저번에 봤던 거 같은데 하면서 풀었다. 그런데 시간 초과가 계속 떴다. 이유가 있었지 암... 첫번째 풀이) (바보풀이임 따라하지 마셈) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; //다리 놓기 실버5 public class Main { public static void main(String[] args) throws IOException { //테스트 케이스의 수 T BufferedReader br..
정렬 문제여서 간단하게 생각했다. 간단하게 Arrays.sort()를 쓰면 되지 않을까 하고 풀어보았다. 고민했던 점은 1) 멘토-멘티 순서쌍을 어떤 식으로 표현할지 2) 비교를 어떤 방법으로 표현할지 였다. 첫번째 풀이는 1) String[][] 2차원 배열에 저장하는 것이었다. 2) 비교는 Arrays.sort(람다식) 사용. >> 코드는 이런식으로 나왔다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; // 멘토와 멘티 실버5 public class Main { public static void main(String[] args) thr..
머리가 안돌아가여.... 막 맵에다 넣고 난리난리 치다가... 왜그랬지 ㅠㅠ 그냥 이차원 배열에 넣으면 됐다. 그리고,,,,, 람다식을 사용하면 엄청 간단하게 해결이 된다. - 풀이 더보기 public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 2차원 평면 위에 점 N개 int N = Integer.parseInt(br.readLine()); // N개의 줄에 i번점의 위치 Xi, Yi가 주어진다. // 그걸 2차원 배열로 표시하자. int[][] map = new int[N][2]..
배웠던 BFS와 DFS 활용하는 문제~~~ 출력 형태를 맞추느라고 StringBuffer 사용했다. - 첫번째 풀이 (그냥 주르륵 나열/ Stack, Queue 사용) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; // DFS와 BFS public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 첫째 줄 정점의 개수 N, 간선의 개수 ..
브론즈 5부터 차근차근 풀어보겠다고 처음 고른 문제로 1시간 넘게 싸우고 있을줄은....!!! 몰랐슴더 하지만,,, 나의 무지로 인한 것,,,! 하하 1. 입력 값은 조교가 가진 돈 n / 이 돈을 동일하게 분배받을 생명체의 수 m 2. 이걸 가지고 돈을 똑같이 분배하면 한사람당 얼마? + 그리고 남은 돈은 얼마? - 1차 풀이 첫 풀이는 이랬다 원가 BufferedReader가 빠르다 보니 이제는 이걸로 항상 쓰는데 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; // 엄청난 부자2 public class Main { public static void main(String[] args)..
1. Stack 개요 Stack이란? : 물건을 쌓아올린 형태의 자료구조. 자료가 일렬로 놓인 선형 자료구조. - 마지막에 추가된 자료가 먼저 나오는 후입선출 자료구조 (Last In First Out) ** top : 스택의 꼭대기가 배열의 어디에 해당하는지를 판단하기 위한 변수 (초기값 -1) 스택에 데이터를 추가 : push(a) >> top의 크기를 하나 증가시킨 뒤 arr[top]에 a 할당. 스택에서 데이터 회수 : pop() >> arr[top]의 값을 반환, top의 크기 하나 감소. 스택이 비어있는지 확인 : isEmpty >> 빈스택인 경우 -1. 스택의 제일 위의 데이터 확인 : peek() >> top을 감소시키지 않고 arr[top]의 값 반환. 스택이 가득 차 있는지 확인 (고정..
1. 자연수 9개 입력받기 Scanner sc = new Scanner(System.in); // 사이즈 9인 배열 생성 int[] intArray = new int[9]; // 9개의 input을 배열 안에 넣기 for (int i=0; i StringTokenizer / String.split() 함수 사용 // StringTokenizer BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int n = Integer.parseInt(st.nextToken()); // String.split() 함수 사용 String ..
유한소수 판별하기 문제..... 1번. 일단 유한소수가 되기 위한 분수의 조건이 > 기약분수로 나타내었을 때 분모의 소인수가 2와 5만 존재해야 한다. 그렇다면 1️⃣기약분수로 나타내기 2️⃣그때 분모의 소인수에 2, 5만 존재하는지 확인. 1️⃣ 기약분수로 나타내기. 기약분수로 만들기 위해서는 최대공약수로 나눠주어야 한다. 이때 최대공약수 구하기 방법이 여러가지가 있다. 1) 그냥 냅다 for문 만들어서 최대공약수 구하기. import java.util.*; class Solution { public int solution(int a, int b) { int answer = 2; // 최대공약수 구하기 int gcd = 0; // 최대공약수 for (int i=1; i> 그러나 최대공약수를 만드는 유클..