목록언어/JAVA
Step-by-Step
소수인지 확인하는 문제는 어디든 꼭 나오는 것 같다 소수는 1과 자신만을 인수로 갖는 숫자이다. 그럼 숫자 N을 2부터 N-1까지 나눠봐야하는데, 예전에 문제 풀이 했을 때 2~N의제곱근까지 나눠서 없으면 안되는 원리를 알게 된 문제가 있었다. 그 원리를 이용해서 구현한 코드는 다음과 같다 public boolean isPrime(int n) { if (n
https://www.acmicpc.net/problem/17780 17780번: 새로운 게임 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하 www.acmicpc.net 이런 유형의 문제는 어디서 많이 봤는데, 풀어야지 풀어야지 해놓고 보기만 했던거같다 ※ 문제에서 주어진 것 N : 체스판 크기 (N x N) K : 말의 개수 ※ 변수 의미 (인터넷의 여러 풀이 방법 참조) - int[][] chess : 각 색깔 정보를 담은 체스판 - Deque [][] deque : 각 체스판에 올려진 말 - Node : 각 말의 정보 (좌표 p, q, 방향 dir) - Ar..
https://www.acmicpc.net/problem/15591 15591번: MooTube (Silver) 농부 존은 1번 동영상과 2번 동영상이 USADO 3을 가지고, 2번 동영상과 3번 동영상이 USADO 2를 가지고, 2번 동영상과 4번 동영상이 USADO 4를 가진다고 했다. 이것에 기반해서 1번 동영상과 3번 동영상의 www.acmicpc.net 항상 느끼는거지만 문제를 풀때 기본적으로 1. Scanner보다는 BufferedReader 사용 2. 배열 보다는 ArrayList 사용 이게 기본으로 들어가야 하는거같다... 괜히 엄한 곳에서 시간초과나서 전체적으로 수정하느라 시간 오래 걸릴바에는 귀찮더라도 처음부터 이렇게 쓰는게 나을듯 하다 솔직히 I/O부분은 Scanner랑 print 쓰..
https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 특정 회원이 신고를 k번 이상 받게 되면, 해당 회원은 정지된다. 회원들이 각자 신고하여 신고대상이 정지를 받게 된 경우의 횟수를 구하는 문제이다. 일단 모든 회원의 신고 후 정지된 사례 개수를 리턴해야하기 때문에 answer을 0으로 초기화한다. int[] answer = new int[id_list.length]; 그리고 특정 회원이 정지를 받았을 때..
https://programmers.co.kr/learn/courses/30/lessons/81303 코딩테스트 연습 - 표 편집 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z"] "OOOOXOOO" 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z","U 1","C"] "OOXOXOOO" programmers.co.kr 밑에 설명과 같은 그림이 들어오면 명령어에 따라 선택된 행 이동, 삭제, 복구 작업을 수행한다. 처음에는 효율성 생각 안하고 정확도만 따지기 위해 다음과 같은 방법을 이용했는데, 결론부터 말하면 정확도, 효율성 모두 통과 못한다. [통과 못한 코드] import java.util.*; class Solution ..
https://programmers.co.kr/learn/courses/30/lessons/81301?language=java 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 다음과 같이 영어로된 숫자를 아라비아 숫자로 바꾼 후 Int 형태로 반환하는 함수를 만드는 것이다. [코드] 코드는 replace()를 이용하였고, 문제가 될까봐 일단 지웠다! String에는 특정 문자열을 다른 문자열로 바꿔주는 replace()라는 좋은 함수가 있다. 대표적인 3가지를 1. replace public Str..

https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net 이 문제는 어떻게 접근해야하는지만 깨달으면 쉽게 풀 수 있는 문제인데,,, 사실 그러기가 쉽지 않다(어렵다) 문제에서 이런식으로 주사위를 펼쳐놓은 모양을 보여주고, 친절하게 번호까지 지정해준다 (이게 큰 힌트) 주사위가 어떤 칸에 도달하면, 칸의 숫자가 0이 아니면 주사위 밑면에 값을 복사하고 0으로 만들어주며 칸의 숫자가 0이면 ..

https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 대학교 1학년때 자주하던 2048 게임이 나왔다! 워낙 자주하던 게임이라 따로 해보지 않아도 규칙을 알고 있었다 ※ 게임 해보기 : https://play2048.co/ 블록은 상하좌우 네 방향으로 밀 수 있으며, 같은 숫자를 가진 두 블록이 충돌하면 두 값이 합쳐진 하나의 블록으로 변하게 된다 여기서 Stack을 사용해야겠다고 생각했다..! 보드의 크기는 NXN(N=..