본문 바로가기

코딩테스트

(37)
[백준 JAVA] 2824. 최대공약수 문제 링크https://www.acmicpc.net/problem/2824접근 방법큰 수 연산을 해야 하므로 BigInteger를 사용합니다. 소스 코드import java.util.*;import java.io.*;import java.math.BigInteger;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br.readLine(); BigInteger a = Arrays.stream(br.readLine().split(" ")) .map(BigInteger:..
[백준 JAVA] 14232. 보석 도둑 문제 링크https://www.acmicpc.net/problem/14232접근 방법2부터 시작해서 효빈이가 들 수 있는 무게까지 반복문을 돌립니다. 소스 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBui..
[백준 JAVA] 1456. 거의 소수 문제 링크https://www.acmicpc.net/problem/1456접근 방법에라토스테네스의 체를 이용하여 소수를 구합니다.b의 제곱근 보다 큰 소수는 제곱했을 때 b 보다 커지므로 b의 제곱근으로 for 문을 돌립니다.제곱할 때 오버플로우가 날 수 있기 때문에 Math.pow함수를 사용합니다.소스 코드import java.util.*;import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st..
[프로그래머스 JAVA] 181832. 정수를 나선형으로 배치하기 문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 접근 방법나선형으로 배열을 채우기 위해 오른쪽, 아래, 왼쪽, 위 4방향으로 순차적으로 채워야 합니다.따라서 각 방향마다 출발지점을 만들고 채워줍니다.소스 코드class Solution { public int[][] solution(int n) { int[][] answer = new int[n][n], a = {{0, 0}, {0, n - 1}, {n - 1, n - 1}, {n - 1, 0}}; int[] d = {0, 1, 2, 3}; boolean fl..
[프로그래머스 JAVA] 181893. 배열 조각하기 문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr접근 방법List로 변환해 인덱스까지 잘라줍니다.소스 코드import java.util.*;import java.util.stream.*;class Solution { public int[] solution(int[] arr, int[] query) { List arrayList = Arrays.stream(arr) .boxed() ..
[백준 C++] 30867. 과제가 너무 많아 문제 링크https://www.acmicpc.net/problem/30867접근 방법wwwh라는 문자열을 3번 바꾸게 된다면 wwhw → whww → hwww가 되게 됩니다.따라서 3번 바꾸는 것이 아닌, w가 있는 인덱스와 최대 n만큼 떨어진 h를 찾아 바꿔줍니다. 소스 코드#include using namespace std;int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); string str; int l, n, cnt = 0; cin >> l >> n >> str; for (int i = 0; i 코드 설명w가 몇 번 연속으로 나오는지 세줍니다.h를 만나게 되면, w와 바꿔줍니다.w..
[프로그래머스 C++] 176963. 추억 점수 문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr접근 방법map으로 이름과 점수를 매핑합니다.소스 코드#include #include using namespace std;vector solution(vector name, vector yearning, vector> photo) { vector answer(photo.size(), 0); map nameWithYearn; for (int i = 0; i
[프로그래머스 C++] 176962. 과제 진행하기 문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr접근 방법지금 시작하기로 한 과제시각과 그다음 시작해야 할 과제시각의 차를 구한 후,지금 시작하는 과제시간과 위에서 구한 시간을 비교하며 과제를 끝낼 수 있는지 확인합니다.과제를 끝나고 난 후에도 시간이 남는다면, 하다 멈춘 과제들을 하나씩 수행합니다.소스 코드#include #include #include #include #include using namespace std;bool comp(vector& a, vector& b){ return a[1] solution(vector> plans) ..