분류 전체보기

알고리즘을 푸는데 결과를 출력할 때 나는 보통 아래와 같이 풀었다. for(int i=0; i< N; i++){ System.out.println(arr[i]); } 그런데 문제에서 시간 초과가 났다. 찾아보니 정렬 알고리즘을 제외하고도 저 출력문에도 문제가 있다는 것을 알게 되었다. 다른 사람들 풀이를 찾아보니 출력을 할 때, StringBuilder를 사용해서 풀었다. 그런데 나는 똑같이 for문을 사용하는데 왜 단순 print문은 안 되고, StringBuilder는 되는 걸까?에 대한 의문을 가지게 되었다. 그 이유는 println을 사용하여 출력할 때마다 새로운 라인을 생성하고 출력하는 동작을 수행하는데, 이 과정에서 불필요한 라인 생성 및 출력 작업이 발생하기 때문이다. 그렇기 때문에 연산면에..
깃허브에 main과 docs라는 브랜치가 있는데, docs를 main에 pull request 해주고 docs브랜치를 직접 삭제를 해주었다. 그리고 vscode에서 `git branch -d docs`로 docs 로컬 브랜치를 삭제해 주고 `git branch -a`로 남은 브랜치 목록을 확인했다. 여전히 원격 브랜치인 docs가 남아있어서, 아 업데이트 안 시켜줬지~하면서 `git fetch`를 했다. 그런데 여전히 원격 브랜치인 docs가 남아있었다. 그래서 구글링을 해봤는데, `git fetch --prune`이라는 명령어를 따로 써야된다고 알게 되었다. 즉, remote에 없는 브랜치를 local에도 반영을 해주는 것이다. 참고로 구글에 검색해 보니 prune은 불필요한 가지를 치다라는 뜻을 가지..
⏰문제 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 131526 62869 48826 47.98% 문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 출력 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. 예제 입력 1 5 3 4 1 1 1 -1 2 2 3 3 예제 출력 1 1 -1 1 1 2 2 3 3 3 4 💡풀..
⏰문제 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 256 MB 169690 71011 53244 40.32% 문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 길이가 짧은 것부터 길이가 같으면 사전 순으로 단, 중복된 단어는 하나만 남기고 제거해야 한다. 입력 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. 출력 조건에 따라 정렬하여 단어들을 출력한다. 예제 입력 1 13 but i wont hesitate no more no more it cannot wait im y..
⏰문제 💡풀이 고등학생 때 배운 조합공식을 이용해서 풀었다. 사용한 공식은 아래와 같다. $\binom{n}{k} = \left\{\begin{matrix} 0 & k n \\ \end{matrix}\right.$ ⌨️ 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br= new BufferedReader(new InputStreamReader(Syste..
⏰문제 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 240673 73774 49011 29.86% 문제 N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다. 출력 M개의 줄에 답을 출력한다. 존재하면 1을, 존재하지 않으면 0을 출력한다. 예제 입력 ..
⏰문제 문제 설명 다음은 아이스크림 가게의 상반기 주문 정보를 담은 `FIRST_HALF` 테이블과 7월의 아이스크림 주문 정보를 담은 `JULY` 테이블입니다. `FIRST_HALF` 테이블 구조는 다음과 같으며, `SHIPMENT_ID`, `FLAVOR`, `TOTAL_ORDER`는 각각 아이스크림 공장에서 아이스크림 가게까지의 출하 번호, 아이스크림 맛, 상반기 아이스크림 총주문량을 나타냅니다. `FIRST_HALF` 테이블의 기본 키는 `FLAVOR`입니다. `FIRST_HALF`테이블의 `SHIPMENT_ID`는 `JULY`테이블의 `SHIPMENT_ID`의 외래 키입니다. NAME TYPE NULLABLE SHIPMENT_ID INT(N) FALSE FLAVOR VARCHAR(N) FALSE ..
⏰문제 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 0.5 초 (추가 시간 없음) 256 MB 118717 55154 43345 48.98% 정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 여섯 가지이다. push X: 정수 X를 큐에 넣는 연산이다. pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 큐에 들어있는 정수의 개수를 출력한다. empty: 큐가 비어있으면 1, 아니면 0을 출력한다. front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. back: 큐의 가장 뒤에 있는 정수를 출력한다. ..
⏰문제 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 (추가 시간 없음) 512 MB 113629 74954 51702 64.46% 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 출력 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. 예제 입력 1 3 4 7 10 ..
⏰ 문제 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 0.15 초 (https://www.acmicpc.net/problem/1463#) 128 MB 288374 97925 62437 32.854% 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 입력 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. 출력 첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. 예제 입력 1 2 예제 출력 1 1 예제 입력 2 10 예제 출력 2..
i_zzy
'분류 전체보기' 카테고리의 글 목록 (6 Page)