본문 바로가기

분류 전체보기1068

백준 9291 자바 - 스도쿠 채점 (BOJ 9291 JAVA) 문제 : https://www.acmicpc.net/problem/9291 코드 : https://github.com/NaHwaSa/BOJ_BaekjunOnlineJudge/blob/master/09200/BOJ_9291.java 일단 실버 이상 티어는 전부 블로그에 글을 쓸까 했었는데, 문제마다 해설 필요한것만 올리던지 해야겠다. 이 문제의 경우 그냥 정확히 제시된 대로 구현만 잘 하면 된다. 실버인 이유는 어쨌든 구현이 좀 복잡할 수 있기 때문일 것 같다. 1. 각 행에 1-9가 한 번씩 등장하는지 확인 2. 각 열에 1-9가 한 번씩 등장하는지 확인 3. 각 작은 3x3 정사각형에 1-9가 한 번씩 등장하는지 확인 이렇게 3개를 하면 된다. 코드의 경우 'chkRowAndCol()'에서 1과 2를 .. 2021. 10. 24.
AtCoder Beginner Contest 224 참여후기 (ABC 224) Contest : https://atcoder.jp/contests/abc224 Editorial : https://atcoder.jp/contests/abc224/editorial 코드 : https://github.com/NaHwaSa/AtCoder/tree/master/ABC224 망함. 일정 설정 해놓고 까먹었다가 거의 1시간 지나고 참여함. 근데 일단 C번에서 엄청 오래걸렸어서 변명밖에 안되긴 함. 어차피 Editorial 있으니 그냥 푼 A,B,C에 대한 후기만 적음. A : 그냥 코딩이라는걸 할 줄 알면 풀 수 있을듯 B : 마찬가지로, 주어진 조건 대로 시뮬레이션만 구현 가능하면 풀 수 있음. C : 설마 Beginner라고 달아두고 C번부터 기하학 CCW 문제가 나올줄은 몰랐음. 일단 O.. 2021. 10. 23.
백준 20438 자바 - 출석체크 (BOJ 20438 JAVA) 문제 : https://www.acmicpc.net/problem/20438 코드 : https://github.com/NaHwaSa/BOJ_BaekjunOnlineJudge/blob/master/20400/BOJ_20438.java 1. 일단 잠자는 사람들을 생각하지 않고, 출석 코드를 보내는 부분만 생각해보자. n명을 입력받고, q를 입력받아 단순히 자신과 그 배수들은 출석코드를 받았다고 할 수 있다. 이 부분까진 간단하게 구현 가능할 것이다. 2. 다음으로 잠자는 사람에 대해 어떻게 처리해야할지 확인해보자. 일단 q명 중 출석코드를 받은게 자는사람에 포함되어 있다면 그 배수한테 출석코드를 보낼 수 없다. 따라서 이 경우 해당 출석 코드는 무시된다. (23line) 다음으로, 출석 코드를 받은 사람은.. 2021. 10. 23.
백준 21941 자바 - 문자열 제거 (틀린 풀이 - 새로 작성한 풀이 링크 포함) -- 이하 틀린 풀이이다. -- 새로 작성한 풀이 : 링크 문제 : https://www.acmicpc.net/problem/21941 풀고보니 DP로만 분류되있어서(알고리즘 분류 켜놓으면 너무 치트라 꺼놨음) 약간 의아했다. 내 경우엔 그리디로 풀었다. 물론 DP를 더 간단하게 생각하는 분들이 많겠지 ㅠ 1. 일단 a의 길이가 x보다 크거나 같다면 버린다. 예제 입력2의 경우를 처리하기 위해서이다. 2. 그다음 가장 점수를 많이 주는 녀석부터 하나씩 빼낼껀데, 단순히 'x'만 판단하면 안된다. 왜냐면 다음과 같은 경우가 있을 수 있다. abcdefg 10 a 9 둘 다 '1'에서 걸러지지 않지만, 누가봐도 'a 9'를 쓰는게 이득임을 알 수 있다. 따라서 [ x / a의길이 ] 가 높은 순서대로 먼저 .. 2021. 10. 23.
백준 1294 자바 - 문자열 장식 (BOJ 1294 JAVA) 문제 : https://www.acmicpc.net/problem/1294 코드 : https://github.com/NaHwaSa/BOJ_BaekjunOnlineJudge/blob/master/01200/BOJ_1294.java 쉬운줄 알고 덤볐는데 생각보다 어려웠지만, 결국 다 풀고보니 또 그렇게 어렵진 않았던 문제. 1. 기본 로직은 어렵지 않게 생각해볼 수 있다. 3 ABC BCD CDE 만약 입력이 위와 같다고 하자. 각 문자열의 순서를 해치지 않으면서 전체 문자열이 사전순으로 앞서게 하려면 결국 각 문자열에 pointer를 뒀다고 생각하고, 해당 문자열의 pointer가 가르키는 문자 중 가장 작은걸 순서대로 빼내면 된다. 즉, 위의 경우 다음과 같이 진행된다. 1.1 시작은 아래와 같다. 화.. 2021. 10. 23.
백준 23276 자바 - Locust Locus (BOJ 23276 JAVA) 문제 : https://www.acmicpc.net/problem/23276 코드 : https://github.com/NaHwaSa/BOJ_BaekjunOnlineJudge/blob/master/23200/BOJ_23276.java 결국 k개의 입력 중 y + (c1과 c2의 최소공배수) 의 최소값을 찾으면 된다. 최소공배수는 유클리드 호제법을 통해 구했다. 2021. 10. 22.
백준 2660 자바 - 회장뽑기 (BOJ 2660 JAVA) 문제 : https://www.acmicpc.net/problem/2660 코드 : https://github.com/NaHwaSa/BOJ_BaekjunOnlineJudge/blob/master/02600/BOJ_2660.java 사실상 언어영역 문제였다. '예를 들어 어느 회원이 다른 모든 회원과 친구이면, 이 회원의 점수는 1점이다. 어느 회원의 점수가 2점이면, 다른 모든 회원이 친구이거나 친구의 친구임을 말한다. 또한 어느 회원의 점수가 3점이면, 다른 모든 회원이 친구이거나, 친구의 친구이거나, 친구의 친구의 친구임을 말한다.' 대체 이게 뭔 X소리인가 해서 일단 공책에 그래프 그려보고 서로 몇다리 건너뛰어야 하는지 그려보고 생각해보기로 했다. 결론적으로 문제에 제시된 예제1은 다음과 같이 그려.. 2021. 10. 22.
백준 23256 자바 - 성인 게임 (BOJ 23256 JAVA) 문제 : https://www.acmicpc.net/problem/23256 코드 : https://github.com/NaHwaSa/BOJ_BaekjunOnlineJudge/blob/master/23200/BOJ_23256.java 규칙성을 찾기가 난해했다. 일단 결과부터 말하자면 이 문제는 점화식 2개를 만들어 풀어야 한다. 전체 경우의 수를 따로 세고, 전체의 경우 중 맨 우측이 1칸짜리 블록인 경우를 따로 세야 한다. 예를들어 N=1인 경우 전체 경우의 수는 7이고, 맨 우측이 1칸짜리 블록인 경우 3가지로 다음과 같다. 그럼 왜 그렇게 해야하는지 풀이를 써보겠다. 1. N=2 이상일 경우 이전 경우에서 우측에 3개가 추가된다. 이 때 그 3개는 다음의 3가지 경우가 있다. 따라서 일단 f(n)이.. 2021. 10. 21.
백준 1270 자바 - 전쟁 - 땅따먹기 (BOJ 1270 JAVA) 문제 : https://www.acmicpc.net/problem/1270 코드 : https://github.com/NaHwaSa/BOJ_BaekjunOnlineJudge/blob/master/01200/BOJ_1270.java 실3지만, 자바로는 메모리초과 때문에 개인적으로 골드 상위정도는 될 듯 하다. 일단 자바로 성공한게 현재로썬 혼자뿐이다. 문제 자체는 그냥 카운팅만 잘 하면 되는 쉬운 문제이므로 해설은 이 문제를 자바로 도전할 사람들을 위해 메모리를 감소시킨 방식과 일부 이해하기 힘들 수 있는 코드 부분에 대해 적어본다. 1. 일단 입력 최대치가 2^31-1이 아니고 int형 범위를 1 넘어간 2^31 이라는 점에서 악의성이 다분하다. 그냥 대충 해싱으로 t개 전부 카운트 하려 했더니 메모리 .. 2021. 10. 21.
[자바] 프로그래머스 - 3 x n 타일링 [코딩테스트 연습 Lv4] - 문제 출처 : 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges - 지형이동 문제 : https://programmers.co.kr/learn/courses/30/lessons/12902 - 코드 : 깃헙 일반적으로 DP 기본 문제로 풀어봤을 2 x n 타일링과 크게 다르지 않다. 2 x n 타일링에서 규칙성이 좀 더 찾기 어려워졌을 뿐 마찬가지로 꼼꼼하게 규칙성만 잘 찾으면 된다. 1. 우선, 2칸짜리 타일을 사용해야 하므로 무슨짓을 하던 n이 홀수라면 전체 칸 수(3 x n)가 홀수이므로 2칸짜리 타일로 타일링이 불가능하다. 즉, n이 짝수일 때만 타일링이 가능하다. 이 부분은 예외로 처리해준다. (코드 10line) 2. 가장 기본적인 .. 2021. 10. 21.