백준 17

[백준] 2292번: 벌집 (JAVA)

문제: https://www.acmicpc.net/problem/2292문제 접근방의 개수에 대한 규칙을 찾을라고 했습니다.처음에 그림으로 그려서 볼까 하다가 그리기 너무 힘들어서..일단, 문제에서 제공한 사진을 보며, 지나가야하는 방의 개수에 해당하는 방이 뭐뭐 있는지 알아봤습니다.방 1개: 1방 2개: 6개의 방이 해당: 2~7방 3개: 12개의 방이 해당: 8~19방 4개: 18개의 방이 해당: 20~37방 5개: 24개의 방이 해당: 28~61해당하는 방의 개수가 6의 배수씩 늘어나는게 보이시나요?이 규칙을 적용하여, 코드를 짜보았습니다.전체 코드import java.io.*;public class Main { public static void main(String[] args) throws..

[백준] 2903번: 중앙 이동 알고리즘 (JAVA)

문제: https://www.acmicpc.net/problem/2903문제 접근규칙을 찾는 문제였던 거 같습니다!그래서 바보인 저는 냅다 노트를 꺼내서 그림부터 그렸는데요!! 규칙 찾는데 시간이 너무 오래걸렸었는데..어찌하다 점의 개수에 대한 규칙? 을 찾았습니다!(바보여서 4번 반복한 것까지 그려 봤어요 ㅋㅋ..)초기 점의 개수: 한 변에 있는 점 2개 -> 2의 제곱1번: 한 변에 있는 점 3개 -> 3의 제곱2번: 한 변에 있는 점 5개 -> 5의 제곱3번: 한 변에 있는 점 9개 -> 9의 제곱4번: 한 변에 있는 점 17개 -> 17의 제곱그래서 제곱을 빼고 숫자에만 집중에 봤습니다: 2 -> 3 -> 5 -> 9 -> 17  숫자가 (1, 2, 4, 8,..) 이렇게 2의 거듭제곱 꼴로 증가..

[백준] 2720번: 세탁소 사장 동혁 (JAVA)

문제: https://www.acmicpc.net/problem/2720문제 접근동전의 개수를 담을 배열 생성: 0번 인덱스부터 순서대로 쿼터, 다임, 니켈, 페니for문 + if문 활용하여 동전의 개수 계산한 후, 배열에 넣어주기배열을 차례로 출력전체 코드import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(Syst..

[백준] 11005번: 진법 변환2 (JAVA)

문제: https://www.acmicpc.net/problem/11005문제 접근이번 문제도 진법 변환입니다! 하지만 저번 글과 반대로 10진법을 N진법으로 변환하는 문제입니다.그래서 이번에는 10진법을 N진법으로 바꾸는 방법을 설명해보겠습니다!(혹시 N진법을 10진법으로 바꾸고 싶다면 이전 글을 참고해주세요) 10진수를 N진수로 변환하려면, 변환하고 싶은 10진수를 N으로 나누고 나머지를 옆에 적습니다. 이 과정을 더 이상 나눌 수 없을 때까지 반복한 다음, 몫부터 시작해서 적었던 나머지를 모두 적으면 됩니다!이건 손그림이 필요해서,, 실제 예시는 보여드리지 않겠습니다 ㅠ.ㅠ그래도 2진수 구하는 법을 아신다면, 다른 진수도 쉽게 구하실 수 있습니다!전체 코드import java.io.*;import ..

[백준] 2745번: 진법 변환 (JAVA)

문제: https://www.acmicpc.net/problem/2745문제 접근이번 문제는 진법 계산하는 법만 안다면 그다지 어렵지 않은 문제였습니다!그래서 문제 접근 방식을 설명드리는 것보다는 N진법을 10진법으로 바꾸는 방법을 설명해드리겠습니다. 어떤 진법으로 된 수라도 10진수로 변환하는 법은 똑같습니다!각 자리의 수에 해당 단위의 값을 곱해서 더하면 됩니다! 글로 봐서 이해가 잘 안되실 수도 있는데 10진수 1029 라는 숫자를 예시로 들어보겠습니다! 1029를 풀어서 쓰면 다음과 같습니다:이번에는 2진수 1010을 10진수로 변환해보겠습니다:즉, N진수를 10진수로 변환하고 싶다면 가장 우측에 있는 수부터 차례로 N^0, N^1,N^2, ..., N^n을 곱하고 더해주면 됩니다!단 9를 초과하..

[백준] 10798번: 세로읽기 (JAVA)

문제: https://www.acmicpc.net/problem/10798 문제 접근이 문제는 그다지 어려운 문제는 아니었습니다.char형 2차원 배열 생성문자열을 입력 받은 후, chatAt() 함수를 사용하여 2차원 배열에 초기화이중 for문을 사용하여 문자열 만들기 (만약 null 이면 넘어가기)전체 코드import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWrit..

[백준] 2563번: 색종이 (JAVA)

문제: https://www.acmicpc.net/problem/2563 문제 접근처음에는 모든 삼각형의 넓이를 구한 후, 겹치는 부분을 빼주는 식으로 생각했습니다!근데 코드가 너무 복잡해지고, 머리가 안 돌아가길래 다른 방법을 생각해봤습니다. 제가 생각한 방식은 다음과 같습니다:2차원 배열을 좌표 평면, 입력값을 색종이의 (x,y) 좌표로 생각2차원 배열을 생성하여 0으로 초기화  색종이가 없는 부분은 0, 색종이가 있는 부분(좌표)은 1로 생각 ( 1의 개수를 구할 예정 )만약 배열의 값이 0이면 sum++;  하고 값을 1로 변경 (10 X 10 반복)전체 코드import java.io.*; public class Main { public static void main(String[] ar..