본문 바로가기

java

(7)
[Java] 백준 1018번 문제 '체스판 다시 칠하기' 풀이 이번 문제도 브루트 포스 문제입니다 일단 문제 먼저 보시겠습니다 https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 문제를 보면 그냥 탐색해서 비교만 하면 될 것 같지만 MxN의 넓은 보드에서 8x8만큼의 체스판 크기로 뽑은 다음 하나하나 비교를 해봐야합니다 그래서 저는 for문을 4개나 쓰는 방법을 생각했습니다 (다른 방법이 있으신 분들은 댓글로 알려주시면 감사하겠습니다!!!) 그리고 문제에서 힌트를 하나 발견했습니다 바로 '체스판을 칠하..
[Java] 백준 1032번 문제 명령 프롬프트 일단 문제부터 보겠습니다 https://www.acmicpc.net/problem/1032 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 www.acmicpc.net 문제를 요약하면 입력할 파일의 개수를 입력하고 그다음 동일한 길이의 파일명을 입력하면 모든 파일명 중에서 같은 글자인 부분은 그대로 나오고 다른 부분은 '?'로 나오게 하면 됩니다 여기서 동일한 길이의 파일명이 아니라면 좀 귀찮았을 것 같네요 일단 코드를 먼저 보겠습니다 import java.util.Scanner; public class Main { public s..
[Java]백준 1193번 문제 '분수 찾기' 저는 요즘 쉬운 알고리즘 문제를 찾아서 하고 있습니다 거부감이나 두려움??그런 것들을 없애기 위해 쉬운 문제부터 풀고 있습니다 예전에 제가 수학을 못 할때 쉬운 문제를 풀면서 멘탈을 잡았 거든요 그래서 그 느낌으로 풀었습니다 이 문제도 쉬운 문제입니다 https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 이 문제는 일단 지그재그라는 특성과 사선으로 분모와 분자가 증가하거나 감소한다는 특성이 있습니다 일단 지그재그를 풀어보자면, 첫번째 세로 줄을 기준으로 분자가 짝수이면 사선이 밑으로 가고, 홀수이면 위로 올라가는 사선입니다 import java.util.Scanner; public..
[Java] 백준 2869번 문제 '달팽이는 올라가고 싶다' 안녕하세요 '달팽이는 올라가고 싶다'라는 문제를 Java로 풀어봤습니다 이 문제는 제가 아까 포스팅 한 문제에도 설명을 했지만 BufferedReader를 사용해야 하는 문제입니다 왜냐하면 시간이 많이 촉박한 문제이기 때문입니다 일단 문제를 보여드리겠습니다 https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 문제를 요약해보면 한 달팽이는 높이가 V인 나무 막대를 올라갈 것인데 낯에는 A만큼 올라가지만 밤에는 B만큼 미끄러진다 달팽이가 V에 도착하려면 며칠이 걸리는지 구하는 문제입니다 이 문제에서 함정을 찾..
[Java] 백준 1152 단어의 갯수 문제 풀이 1152번 '단어의 개수' 문제 풀이입니다 BufferedReader와 StringTokenizer를 사용하면 바로 풀 수 있는 문제입니다. BufferedReader는 문자열을 입력받을 때 buffer를 사용해서 받습니다 이것은 Scanner 방식보다 빠르다고 합니다 제가 방금 푼 문제도 Scanner를 사용하지 않고 BufferedReader를 사용해야 풀 수 있었습니다 그리고 BufferedReader를 사용해서 받은 문자열을 띄어쓰기를 기준으로 나눠줘야 합니다 그래야 단어의 개수를 알 수 있습니다 그렇게 나눠지면 나눠진 단위를 토큰이라고 합니다 그럼 그 토큰들의 개수를 알면 됩니다 하지만 countToken이라는 편안한 메서드가 있기 때문에 따로 계산을 하지 않고 countToken만 출력해줘도 ..
[백준 2292번] 벌집 문제 Java 풀이 안녕하세요!!!오늘은 제가 풀었던 백준 문제 중 머리 푸는 용도로 풀었던 문제를 소개시켜드리고 풀이를 보여드리겠습니다 사진을 보시면 가운데 1을 둘러싸면서 번호가 매겨집니다 그래서 만약 입력으로 숫자가 들어오면 그 숫자가 매겨진 방에서 1번까지 가려면 몇 개의 방을 거쳐야 하는지 나오는 문제입니다 (자기가 있는 방과 1번 방도 포함합니다!!!) 사진을 보고 딱 드는 생각은 계차수열입니다 계차수열은 수열간의 차이가 등차수열인 수열입니다 이 사진을 보시면 제가 그림판으로 선을 그렸습니다 빨간 선 중에서 가장 큰 값을 나열해보면(1을 첫째 항으로 합니다) 1, 7, 19, 37, 61, ...입니다 앞과 뒤에 있는 숫자들을 빼보면 6, 12, 18, 24, ...이렇게 6씩 늘어나는 등차수열이 나옵니다 그래서..
프로그래머스 코딩테스트 연습 - K번째 수 안녕하세요 처음으로 이 카테고리에 글을 쓰네요 이 카테고리에는 제가 푸는 알고리즘 문제들을 풀이하고 그것을 공유하는 곳이니 효율적이지 못한 코드가 대부분입니다 그러니 여러분들은 좋은 코드를 많이 보시고 익숙해지시기 바랍니다!!! 일단 제가 오늘 풀었던 문제는 간단한 배열 문제였습니다 일단 문제 설명을 보여드리겠습니다 문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니..