본문 바로가기

전체 글455

[JAVA] 무인도 여행 https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 메리는 여름을 맞아 무인도로 여행을 가기 위해 지도를 보고 있습니다. 지도에는 바다와 무인도들에 대한 정보가 표시돼 있습니다. 지도는 1 x 1크기의 사각형들로 이루어진 직사각형 격자 형태이며, 격자의 각 칸에는 'X' 또는 1에서 9 사이의 자연수가 적혀있습니다. 지도의 'X'는 바다를 나타내며, 숫자는 무인도를 나타냅니다. 이때, 상, 하, 좌, 우로 연결되는 땅들은 하나의 무인도.. 2023. 1. 27.
[JAVA] 억억단을 외우자 https://school.programmers.co.kr/learn/courses/30/lessons/138475 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 영우는 천하제일 암산대회를 앞두고 있습니다. 암산보다는 암기에 일가견이 있는 영우는 구구단을 확장하여 억억단을 만들고 외워버리기로 하였습니다. 억억단은 1억 x 1억 크기의 행렬입니다. 억억단을 외우던 영우는 친구 수연에게 퀴즈를 내달라고 부탁하였습니다. 수연은 평범하게 문제를 내봐야 영우가 너무 쉽게 맞히기 때문에 좀 어렵게 퀴즈를 내보려고 합니다. 적당한 수 e를 먼저 정하여 알려.. 2023. 1. 25.
[JAVA] 인사고과 https://school.programmers.co.kr/learn/courses/30/lessons/152995# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 완호네 회사는 연말마다 1년 간의 인사고과에 따라 인센티브를 지급합니다. 각 사원마다 근무 태도 점수와 동료 평가 점수가 기록되어 있는데 만약 어떤 사원이 다른 임의의 사원보다 두 점수가 모두 낮은 경우가 한 번이라도 있다면 그 사원은 인센티브를 받지 못합니다. 그렇지 않은 사원들에 대해서는 두 점수의 합이 높은 순으로 석차를 내어 석차에 따라 인센티브가 차등 지급됩니다. 이때, 두.. 2023. 1. 24.
[JAVA]카드2_2164 https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 카드2 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 (추가 시간 없음) 128 MB 70233 36079 29435 51.405% 문제 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위.. 2023. 1. 24.
[JAVA] 카드1_2161 https://www.acmicpc.net/problem/2161 2161번: 카드1 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 카드1 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 128 MB 10820 7129 6333 69.009% 문제 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 .. 2023. 1. 24.
[JAVA] 언더프라임_1124 https://www.acmicpc.net/problem/1124 1124번: 언더프라임 자연수 X를 소인수분해하면, 곱해서 X가 되는 소수의 목록을 얻을 수 있다. 예를 들어, 12 = 2 × 2 × 3이다. 1은 소수가 아니다. 어떤 수 X를 소인수분해 해서 구한 소수의 목록의 길이가 소수이면, www.acmicpc.net 언더프라임 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 128 MB 4099 1520 1157 39.869% 문제 자연수 X를 소인수분해하면, 곱해서 X가 되는 소수의 목록을 얻을 수 있다. 예를 들어, 12 = 2 × 2 × 3이다. 1은 소수가 아니다. 어떤 수 X를 소인수분해 해서 구한 소수의 목록의 길이가 소수이면, 그 수를 언더프라임 이라고 한다. 12는 목.. 2023. 1. 23.
JAVA-HIVE/HBASE 간 통신_HBase 통신 HBase는 Hadoop에 데이터를 저장하는 일종의 NoSQL DB라고 볼 수 있다. 이전 포스팅인 Hive의 경우, 기존 RDB와 DDL을 제외하면 대부분이 비슷했었지만, HBase는 HBase만의 문법이 존재했고, 이는 Java Application에도 적용되었다. CREATE - CREATE ALTER - ALTER DROP - DROP INSERT - PUT UPDATE - PUT DELETE - DELETE SELECT - GET/SCAN 현 포스팅에서는 MyBatis가 아닌 HBase 자체 문법을 사용해 HBase와 통신하는 방법을 다룰 것이다. 또한 각 칼럼이 칼럼패밀리-칼럼퀄리파이어로 구성되는데, 지금 포스팅에서는 칼럼 = 칼럼패밀리 = 칼럼퀄리파이어로 구성해서 진행할 예정이다. 먼저 HB.. 2023. 1. 22.
JAVA-HIVE/HBASE 간 통신_Hive 통신 Hive는 HDFS에 데이터를 저장하고 이를 RDB처럼 보여주는 Hadoop의 데이터베이스이다. Hive는 Java의 HIVE-JDBC 드라이버와 HIVESERVER2 간의 연동을 통해 쉽게 접근할 수 있다. 구글링 결과 JPA를 적용할 수 도 있을 것으로 보이는데, 이번 프로젝트에서는 DML뿐 아니라 DDL도 사용해야 했기에 JPA를 사용하지 않았다. 그래서 JPA 대신 MyBatis를 적용했고, 현 포스팅에서도 Mybatis를 사용한 Hive 접근을 다룰 예정이다. 1. 프로젝트 생성 우선 프로젝트를 다음과 같이 생성했다. Maven Java : 1.8 Spring Boot : 2.7.7 Dependency : Lombok, MyBatis Framework 다음으로 Hive에 접근하기 위한 Depen.. 2023. 1. 22.
JAVA-HIVE/HBASE 간 통신_Hadoop/HIVE/HBase 설치 프로젝트를 진행하던 중, 빅데이터 플랫폼인 하둡의 대표적인 RDB인 Hive와, NoSQL DB인 HBase에 데이러틀 적재해야 하는 프로그램을 짜야할 일이 생겼다. Hadoop 기반 개발은 처음이기에 꽤 많이 헤멨었고, 언젠가 또 Hadoop 기반 개발을 해야할 지 모르는 상황이 발생하면 이번처럼 헤매지 않기 위해 간단한 Java를 통한 HIVE/HBASE 연동 방법을 코드로 구현하는 방법을 대략적으로 적어놓고자 한다. 우선 Java Application과 연동되기 위한 Hadoop 인프라를 먼저 설치한다. Hadoop이 설치될 서버는 다음과 같이 구성했다. OS : CentOS 7.9 ROM : 32GB RAM : 8GB 사실 RAM이 중요한데, 로컬 컴퓨터에 램의 용량이 크지 않아 8GB로 설정했다.. 2023. 1. 21.
[JAVA] 놀라운 문자열_1972 https://www.acmicpc.net/problem/1972 1972번: 놀라운 문자열 대문자 알파벳으로만 이루어져 있는 문자열이 있다. 이 문자열에 대해서 ‘D-쌍’이라는 것을 정의할 수 있는데, 이 문자열에 포함되어 있는, 거리가 D인 두 문자를 순서대로 나열한 것을 이 문 www.acmicpc.net 놀라운 문자열 성공다국어 한국어 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 128 MB 1359 771 633 58.665% 문제 대문자 알파벳으로만 이루어져 있는 문자열이 있다. 이 문자열에 대해서 ‘D-쌍’이라는 것을 정의할 수 있는데, 이 문자열에 포함되어 있는, 거리가 D인 두 문자를 순서대로 나열한 것을 이 문자열의 D-쌍이라고 한다. 예를 들어 문자열이 ZGBG라고 하자. 이.. 2023. 1. 21.
[JAVA] 축구 게임_13560 출처: https://www.acmicpc.net/problem/13560 13560번: 축구 게임 프로그램은 표준 입력에서 읽어야 합니다. 입력은 두 줄로 이루어져 있고, 첫째 줄은 하나의 정수 n (2 ≤ n ≤ 10,000) 이고, 팀의 개수를 의미합니다. 다음 줄은 각 팀에서 보고한 점수들입니다. 각 www.acmicpc.net 축구 게임 성공다국어 한국어 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 512 MB 3852 791 597 25.264% 문제 축구는 지구에서 가장 인기있는 스포츠 중의 하나입니다. n 팀으로 이루어진 축구 리그가 있습니다. 하나의 팀은 다른 모든 팀과 정확히 한 번씩만 경기를 합니다. 그러므로, 각 팀은 n - 1 번의 경기를 하게 됩니다. 무승부는 승부차기를.. 2023. 1. 16.
[JAVA] 소수 사이 수열_3896 출처: https://www.acmicpc.net/problem/3896 3896번: 소수 사이 수열 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 테스트 케이스는 한 줄로 이루어져 있고, 한 줄에 정수 k가 주어진다. 각각의 정수는 1보다 크고, 100000번째 소수(1299709)와 작거나 같다. www.acmicpc.net 소수 사이 수열 성공다국어 한국어 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 128 MB 1903 1186 1003 64.336% 문제 연속한 소수 p와 p+n이 있을 때, 그 사이에 있는 n-1개의 합성수(소수나 1이 아닌 양의 정수)는 길이가 n인 소수 사이 수열라고 부른다. 양의 정수 k가 주어졌을 때, k를 포함하는 소수 사이 수열의 길이를 구하는 프로그램을 .. 2023. 1. 16.