본문 바로가기

코딩테스트17

[BOJ] 10026. 적록색약 (Java) 문제 링크 / level: Gold V https://www.acmicpc.net/problem/10026 10026번: 적록색약 문제 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록), B(파랑) 중 하나를 색칠한 그림이 있다. 그림은 몇 개의 구역으로 나뉘어져 있는데, 구역은 같은 색으로 이루어져 있다. 또, 같은 색상이 상하좌우로 인접해 있는 경우에 두 글자는 같은 구역에 속한다. (색상의 차이를 거의 느끼지 못하는 경우도 같은 www.acmicpc.net 내가 생각한 풀이 슬슬 BFS 문제들이 (특히 flood fill 문제) 비슷하다고 느껴져서 내.. 2020. 4. 20.
[BOJ] 1463. 1로 만들기 (Java) 문제 링크 / level: Silver III https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 내가 생각한 풀이 어제부로 동적 계획법(DP)의 세계에 발을 들이게 되었다. 이론은 공부했는데, 실제 문제를 풀어봐야할 것 같아서 초고수 형님들의 추천 문제부터 풀어보았다. 그 첫 번째 문제가 바로 이것! 동적 계획법은 쉽게 말해서 큰 것을 잘게 쪼개서 풀긴 푸는데, 앞에서 구한 값을 이용해서 내가 최종적으로 원하는 값을 구해내는 기법이다. 대표적인 예제는 피보나치 수열이 있다. 지금까지 피보나치 수열을 구할 때는 재귀함수로만 풀 줄 알았지....인 줄 알았으나 알.. 2020. 4. 17.
[BOJ] 1913. 달팽이 (Java) 문제 링크 / level: Silver V https://www.acmicpc.net/problem/1913 1913번: 달팽이 N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하면 되며, 자릿수를 맞출 필요가 없다. N+1번째 줄에는 입력받은 자연수의 좌표를 나타내는 두 정수를 한 칸 띄어서 출력한다. www.acmicpc.net 내가 생각한 풀이 예전에 SWEA의 D2 레벨에서 비슷한 유형의 문제를 풀었던 적이 있다. 그래서 오래간만에 복습 좀 할겸 BOJ에 있는 문제를 하나 풀어봤는데 꽤 헤매서 당황스러웠다. 디버깅까지 해보는 초유의 사태 발생...😥 문제는 심플하다. 입력값으로 N이 주어지면 N^2 사이즈의 이차원 배열을 하나 만들고 그 안을 1부터 N^2까지의 수로.. 2020. 4. 16.
[BOJ] 10757. 큰 수 A+B (Java) 문제 링크 / level: Bronze V https://www.acmicpc.net/problem/10757 10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 내가 생각한 풀이 피보나치 수 시리즈 중 [10826. 피보나치 수 4] 문제를 풀어보려고 했는데, 숫자의 범위가 long type으로 커버가 안 될만큼 커졌다. 그래서 도저히 이 문제에 어떻게 접근해야 하는지조차 감이 잡히질 않아서 질문 검색을 통해 이런 저런 의견을 읽어보던 중, 누군가가 바로 이 문제(10757. 큰 수 A+B)는 풀어보았느냐- 이 문제부터 풀어봐라-라고 해서 도전해봤다. 이런건 남의 말 참 잘 듣쥬?😎 문제는 굉장히 단순하다. 그냥 inpu.. 2020. 4. 16.
[프로그래머스/SQL] 역순 정렬하기 (MySQL) 문제 링크 / level: 1 https://programmers.co.kr/learn/courses/30/lessons/59035 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내가 생각한 풀이 SQL 쿼리문을 짤 때는 딱 두 가지만 기억하면 된다. 어떤 정보를 뽑아올 것이며, 그 정보는 어느 테이블에 있는지. 여기에서는 추가적으로 ANIMAL_ID 순으로 정렬하라는 조건이 있으니 ORDER BY절을 이용해 마지막에 정렬해주기만 하면 된다. 참고로 아무런 속성값을 주지 않으면 자동으로 ASC(오름차순)이 적용되고, 이 문제에서처럼 내림차순(또는 역순)으.. 2020. 4. 14.
[프로그래머스/SQL] 모든 레코드 조회하기 (MySQL) 문제 링크 / level: 1 https://programmers.co.kr/learn/courses/30/lessons/59034 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내가 생각한 풀이 매우 간단한 SELECT문이다. 주어진 테이블의 모든 칼럼을 보여주는데, ANIMAL_ID 순으로 정렬해주기만 하면 된다. 참고로 오름차순으로 정렬하는 것이므로 ORDER BY절에 ASC 속성을 입력할 필요 없다. (자동으로 적용되기 때문에) SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID; 2020. 4. 13.
[프로그래머스] 스킬 체크 레벨 1 결과: 합격! 훌륭합니다🙋️ 그냥 잠들기에는 아쉽고, 피곤해서 어려운 문제는 못 풀겠고, 노트북 바꾼 기념으로 BOJ부터 SWEA, 프로그래머스와 정올까지 북마크에 추가하려는데 오래간만에 프로그래머스에 접속하니 왠지 문제를 풀어보고 싶어서 도전해봤다. 그리고 두 문제를 가볍게 맞히며 테스트 통과!! 야호~~~^_^ 어려운 문제는 아니었지만 예전같으면 상상도 못할 내 모습이 신기하고 재미있다. 이제 JAVA라는 언어를 사용하는데 있어서 어느정도 자신감은 붙은 것 같다. 그리고 기본적인 코드는 구현이 가능한 수준인 것 같다. 아직 갈 길이 멀지만.. 하다 보면 늘겠지?🤔 통과한 기념으로 간단히 적어보는 문제와 코드. 1번: 짝수와 홀수를 판별하는 문제 class Solution { public String solution(int num.. 2020. 4. 11.
[BOJ] 7576. 토마토 (Java) 며칠 전 BFS 알고리즘 계의 바이블이라고 불리는 토마토 문제를 처음으로 풀어보았다. 링크: https://ming-jee.tistory.com/3 연습 - [BOJ] 7576. 토마토 문제 링크 / level: Silver I https://www.acmicpc.net/problem/7576 내가 생각한 풀이 요 며칠 BFS를 공부하면서 관련 문제를 풀고 있어서 도전하게 된 토마토 문제. BFS의 바이블 같은 문제라고 한다. 하지만 그.. ming-jee.tistory.com 근데 처음 풀어보는 유형의 BFS라서 (큐를 2개 이용해야하는 것) 다른 사람들의 코드를 참고한 부분이 많았다. 물론, 처음부터 끝까지 다 곱씹어가며 이해하면서 작성하긴 했지만! 그래서 시간이 좀 지난 후에 내가 온전히 스스로 문.. 2020. 3. 30.