Seize your moment! 👾

안녕하세요. Eric입니다. 제 블로그에 방문해주셔서 감사합니다.

백준 30

[Eric's 백준] 3046번 - R2 - Python

안녕하세요! Eric 입니다. 오늘부터는 python으로 공부를 다시 시작했답니다. 오늘 풀어볼 문제는 백준 3046번 R2입니다. [해설] 우선 input 을 2개 받고, 평균값을 두배로 하고, 첫번째 값을 빼게되면 해결되는 간단한 문제입니다. a, b = input().split() print(int(b)*2-int(a)) 오늘의 리뷰는 여기까지! 다음에는 더 어려운 문제로 올게용! ㅎㅎ

[Eric's 백준] 2667번 - 단지번호 붙이기 - Java 🍯

문제 안녕하세요! Eric 입니다 오늘 풀어볼 문제는 백준 2667번 단지번호 붙이기 입니다 이번 문제는 dfs로 풀어보도록 하죠. 풀이 우선 단지가 몇개인지 구해야하고, 각각의 단지당, 몇개의 가구로 구성되어 있는지 구해야합니다. 이번에도 저는 boolean[] graph 값으로 받아서 단지가 있는 1 로 표시되어 있는 부분은 true 값으로 graph를 그립니다. 그리고 graph 에서 true값을 만마면 상하좌우를 dfs를 돌면서 각각의 단지의 개수를 찾음과 동시에, 해당 graph 위치를 false로 변환시켜줍니다. 그리고 각각의 단지 개수를 count 해줄 ArrayList를 이용해서 해당값을 저장하고 이를 오름차순으로 정렬 후 출력해줍니다. 그러면 코드를 보시죠. 코드

[Eric's 백준] 1012번 - 유기농배추 🥬 - Java

문제 안녕하세요! Eric 입니다! 오늘 풀어볼 문제는 백준 1012번 , 유기농 배추 입니다! 그러면 문제를 풀어보도록 하죠! 풀이 우선 유기농배추를 만들기위해서 배추흰지렁이 를 깔아야합니다. 깔기위해서는 배추가 있는 위치에 깔아야며, 그 지렁이가 상하좌우 로 움직이면서 배추를 보호한다 이를 저는 dfs를 통해서 구연해 보았습니다. 우선 주어진 test case를 int로 받고, 그때의 주어진 배추밭의 길이 m과 n을 받아서 이를 통해서 boolean[] graph를 만듭니다. 이는 배추가 있는 위치에 true값을 주며, 배추가 없는 위치에는 false로 만들어줍니다. 그리고 동일한 사이지의 boolean[] visited 배열을 만들고 dfs가 돌면서 해당 지점을 방문하면 true로 값을 변환해줍니다..

[Eric's 백준] 7569번 - 토마토 - Java 🍅🍅

문제 풀이 이번문제는 방금전에 풀었던 문제 토마토 7576번 문제에서 dis 부분만 수정을 하면됩니다. 저번에는 class Point 가 int x, int y 로 구성되었다면, 이번문제에서는 한층 더 추가하여 int x, int y, int z 로 구성하면 됩니다. 코드를 보시죠 코드 코드를 보시면 이전문제 와 하나의 차이점은 for문을 돌때 3중 for문을 돌아서 입력을 받고, 모든 경우의 수가 3중 for문을 통해서 해결 된다는 것입니다. 이외에는 기존 문제와 동일하게 문제를 해결하시면 됩니다.

[Eric's 백준] 7576번 - 토마토 - Java 🍅

문제 안녕하세요! Eric 입니다! 오늘 가져온 문제는 bfs로 풀 수 있는 백준 7576번 토마토 문제 입니다! 그러면 문제풀이 시작해볼까요? 풀이 해당 문제는 bfs 로 풀 수 있는 문제입니다. 저는 해당 위치의 값을 class Point 라는 값으로 관리 하였습니다. 우선 토마토가 보관되는 창고에서 있는 input 값들을 입력해줍니다. 이때, 입력되는 값이 1 이면, 해당 토마토는 익은토마토이므로 옆으로 움직이면서 근처 토마토들을 익게 만들 수 있습니다. 그러면 익은 토마토 들이 bfs를 돌면서 상,하,좌,우 의 토마토들을 익게 만들어줍니다. ([]dx , []dy 이용) 이때 bfs를 돌면서 board[][] 에 입력된 값이 1 이면, dis[][] 라는 동일한 크기의 배열에서 +1씩 추가해줍니다..

[Eric's 백준] 9020번 - 골드바흐의 추측 - Java

문제 이번문제는 방금전 풀었던 문제 백준 골드바흐의 추측 6588번 해당문제랑 동일하지만, 출력부분에서는 조금 다릅니다. 출력부분에서 6588번은 최대의 차이가 나도록 출력하였다면, 9020번은 최소의 차이가 나도록 출력하고 있습니다. 해설 그래서 저는 출력부분에서 for문을 돌을때 시작을 n/2 부터 시작해서 돕니다. 그 이유는 어차피 값의 합은 n/2 보다 작은 값들로 구성될테니까요! 그렇게해서 문제를 풀게되면.. 코드 이상 오늘도 백준 풀은 Eric 이었습니다.

[Eric's 백준] 6588번 - 골드바흐의 추측 - Java

안녕하세요! Eric 입니다! 오늘 제가 풀어볼 문제는 골드바흐의 추측 백준 6558번 입니다. 이번 문제 역시 '소수'를 이용해서 문제를 풀어야하는데요, 이때 저는 소수를 구할때, 에라토스테네스의 체 를 이용해서 소수인지 판별을하고, 해당 내용을 이미 max값의 크기의 isPrime[] 배열에 넣은다음에 (미리 배열을 구해놓고 진행한 이유는, 만약 다른 수가 나올때마다 배열을 구해서 소수를 구하면 시간복잡도가 더 높아질거라고 생각해서 이렇게 진행하였습니다.) isPrime[]이라는 배열을 이용해서 이미 완성된 소수의 모임에서 다시 for문을 통해서 돌면서 우리가 원하는 골드바흐의 추측 내용이 나오는 값을 출력하면 끝이 납니다! 코드

[Eric's 백준] 1747번 - 소수&팰린드롬 - Java

문제 안녕하세요! 오늘 풀어볼 문제는 백준 1747번 소수&팰린드롬 문제입니다. 소수는 지난번에 풀었던 문제 백준 27465 번 에서 풀었던 method를 그대로 가져왔고, 여기에 팰린드롬 method 를 추가해서 문제를 간단하게 풀었습니다. 팰린드롬은 StringBuiler를 이용해서 풀었습니다. StringBuiler(str).reverse().toString()을 이용해서 구해진 값과 기존의 값과 비교하며 boolean 값으로 method 리턴 값으로 설정해서 문제를 풀어보았습니다. 그러면 코드를 보시죠! 코드 더 나은 코드를 알고 계시면 알려주세요!

[Eric's 백준] 10799번 - 쇠막대기 - Java

안녕핫에요! Eric 입니다! 오늘 풀어볼 백준은 10799번 쇠막대기 문제 입니다! 문제를 보자마자 딱 생각이 들었던건 괄호 는 'Stack' 이다 라는 생각이 들어서 저는 Stack 으로 풀었습니다. 풀이 일반적으로 괄호끼리 만나면 push and pop 으로 끝나는 것이 아니라, 이번 문제에서는 쇠막대기의 개수를 세야하는 문제입니다. 그러면 어떻게 해결해야할까요? 우선 기본적으로 '('를 만났을때 Stack에 push해주는건 동일하고, ')'를 만났을때 Stack에서 pop을 하고나서, 이때 해당 지점이 레이져의 끝 인지, 아니면 막대의 끝인지 고려해서 정답을 도출하면 됩니다. 그러면 코드를 보시죠. 코드 코드를 보시면, 만약 ')'를 만나서 하나의 '('을 이미 pop 했는데, 해당 stack 바..

[Eric's 백준] 13900번 - 순서쌍의 곱의합 - Java

안녕하세요! Eric 입니다! 오늘 풀어볼 문제는 백준 13900번 순서쌍의 곱의합 입니다! 우선 제가 처음에 시간 초과로 틀렸던 방법의 코드를 보고 왜 시간초과가 났는지 알아보고 맞는 방법이 무엇인가 알아보도록 하죠! 시간초과 코드 (정답 아님) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class N13900 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputSt..