코딩테스트

경우의 수 경우의 수는 특정 사건에서 발생할 수 있는 가능한 결과의 총 가짓수를 의미한다. 예를 들어, 동전을 던질 때 앞면 또는 뒷면 중 하나가 나오므로 경우의 수는 2가지이다.주사위를 던지면 1부터 6까지의 숫자가 나올 수 있어 경우의 수는 6가지이다 합의 법칙합의 법칙은 두 사건이 동시에 발생하지 않을 때, 각 사건의 경우의 수를 더하여 전체 경우의 수를 구하는 방법이다.예를 들어, 한 개의 주사위를 던져 2의 배수 또는 5의 배수가 나오는 경우의 수를 구해보해보자.2의 배수가 나오는 경우: 2, 4, 6 → 경우의 수는 3가지5의 배수가 나오는 경우: 5 → 경우의 수는 1가지따라서, 2의 배수 또는 5의 배수가 나올 경우의 수는 3 + 1 = 4가지이다.이처럼 합의 법칙은 "또는", "~이거나"..
백준 코딩 테스트에서 입력 처리를 위해 BufferedReader를 사용하고 있다. 속도 면에서 유리하다는 이유로 사용했지만, 정확한 이유는 알지 못했다. 최근 피드백에서 Scanner를 사용하는 것이 유리한 경우도 있다는 이야기를 듣고, 이번 기회에 Scanner와 BufferedReader의 차이점을 알아보려 한다. 1. ScannerScanner 클래스는 java.util패키지에 포함된 클래스이다. 표준 입력(System.in)을 파싱 하여 기본 데이터 타입 및 문자열로 반환하는 기능을 제공한다. 특징java.util 패키지 안에 있다. (java.util.Scanner)공백 및 개행을 기준으로 읽는다. (토큰단위)기본 데이터 타입을 지원한다. (nextInt(), nextDouble() 등)버퍼의..
오늘 멘토링 시간에 코딩테스트 관련 정보를 알려 주실 때 간단하지만 간과하고 넘어갈 수 있는 요소인 출력문에 대해 이야기 해주셨다.  나같은 경우는 백준같은 출력문이 필요한 문제를 풀 때 출력문을 크게 고민하지 않고 풀다보니 막상 해당 질문을 받으니 뭐라 답변할 지 모르겠다. 그렇기 때문에 이런 기회에 정리를 해보고 문제 풀 때 의식적으로 고민해보도록 하자.  1. println괄호안 내용을 출력한 후 마지막에 개행 문자(\n) 가 포함되어 있어 자동으로 줄바꿈이 된다. 장점간결한 출력 가능줄바꿈을 자동으로 처리해 가독성을 유지System.out.println("Hello, World!");System.out.println("This is a new line.");Hello, World!This is a..
https://www.acmicpc.net/problem/1158 Problem 💻문제요세푸스 문제는 다음과 같다.1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다.N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오.입력첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)출력예제와 같이 요세푸스 순열을 출..
https://www.acmicpc.net/problem/10845Problem 💻문제정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 여섯 가지이다.push X: 정수 X를 큐에 넣는 연산이다.pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.size: 큐에 들어있는 정수의 개수를 출력한다.empty: 큐가 비어있으면 1, 아니면 0을 출력한다.front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.입력첫째 줄에 주어지..
https://school.programmers.co.kr/learn/courses/30/lessons/42747?language=java 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr Problem 💻문제 설명H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 우리는 특정 과학자의 H-Index 값 h를 구하고자 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다.과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하로 인용되었을 때, h의 최댓값이 해당 과학자의 H-Index입니다.과학자가 발표한 논문의 인용 횟수를 담은 배열 ..
https://www.acmicpc.net/problem/1769문제문제가 잘 풀리지 않을 때, 문제를 바라보는 시각을 조금만 다르게 가지면 문제가 쉽게 풀리는 경험을 종종 해 보았을 것이다. 여러 가지 방법이 있지만 그중 하나로 우리가 풀고 싶은 문제를 좀 더 쉬운 문제로 바꾸어 풀어 보는 방법이 있다.소위 "다른 문제로 바꾸어 풀기"라는 이 방법은, 아래와 같은 과정으로 이루어진다.풀고자 하는 문제를 다른 문제로 변환한다.변환된 문제의 답을 구한다.구한 답을 원래 문제의 답으로 삼는다.이를 보다 쉽게 이해하기 위해서, 다음의 초등학교 수학 수준의 예를 들어 보자. 문제 1. "양의 정수 X는 3의 배수인가?"이 문제를 아래와 같이 변환하는데, X의 각 자리의 수를 단순히 더한 수 Y를 만든다. 예를 ..
문제스페이스로 띄어쓰기 된 단어들의 리스트가 주어질때, 단어들을 반대 순서로 뒤집어라. 각 라인은 w개의 영단어로 이루어져 있으며, 총 L개의 알파벳을 가진다. 각 행은 알파벳과 스페이스로만 이루어져 있다. 단어 사이에는 하나의 스페이스만 들어간다.입력첫 행은 N이며, 전체 케이스의 개수이다.N개의 케이스들이 이어지는데, 각 케이스는 스페이스로 띄어진 단어들이다. 스페이스는 라인의 처음과 끝에는 나타나지 않는다. N과 L은 다음 범위를 가진다.N = 51 ≤ L ≤ 25출력각 케이스에 대해서, 케이스 번호가 x일때  "Case #x: " 를 출력한 후 그 후에 이어서 단어들을 반대 순서로 출력한다. 문제해석 문자열이 주어지며 문자열에 각 단어는 공백(스페이드)로 구분한다. 구분한 단어들을 역순으로 출력하..
https://www.acmicpc.net/problem/17608문제 (브론즈2)아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 6, 9, 7, 6, 4, 6 이다. 일렬로 세워진 막대기를 오른쪽에서 보면 보이는 막대기가 있고 보이지 않는 막대기가 있다. 즉, 지금 보이는 막대기보다 뒤에 있고 높이가 높은 것이 보이게 된다. 예를 들어, 그림과 같은 경우엔 3개(6번, 3번, 2번)의 막대기가 보인다.N개의 막대기에 대한 높이 정보가 주어질 때, 오른쪽에서 보아서 몇 개가 보이는지를 알아내는 프로그램을 작성하려고 한다.입력첫 번째 줄에는 막대기의 개수를 나타내는 ..
아스키 코드에서 각 문자에는 고유한 숫자 값이 할당되어 있다. 문자 '0'부터 '9'까지는 연속된 값으로 할당되며, 그 값은 다음과 같다.'0'의 아스키 코드 값: 48'1'의 아스키 코드 값: 49...'9'의 아스키 코드 값: 57이 연속적인 값의 특징을 활용하면, 문자와 숫자 간의 변환을 손쉽게 수행할 수 있다.예제: '1' → 숫자 1로 변환'1'의 아스키 코드 값은 49 이다.'0'의 아스키 코드 값은 48 이다.'1' - '0'를 계산하면, 49 - 48 = 1이 된다.결과적으로, 문자 '1'에서 '0'을 빼면 해당 문자를 숫자로 변환할 수 있다. 일반화된 규칙문자 '0'부터 '9'까지의 숫자로 변환하려면int 숫자 = 문자 - '0';이 방법은 모든 숫자 문자를 정수 값으로 변환할 때 유효하..
JH_DEV77
'코딩테스트' 카테고리의 글 목록 (3 Page)