Seize your moment! 👾

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

Java 27

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

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

[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 백준] 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..

[Eric's 백준] 1987번 - 알파벳 - Java

문제 오늘도 백준문제 달리는 Eric입니다! 오늘 풀어볼 문제는 백준 1987번 알파벳 이라는 문제 입니다. 일반적인 dfs 문제랑 다르게, graph가 0과 1로 이루어 진것이 아니라, 알파벳으로 이루어져 있고, 이미 지나간 알파벳은 다시 지날 수 없다는 조건이 있습니다. 그래서 저는 이 부분을 boolean[] visited = new boolean[26] 으로 설정하고 만약 해당 칸을 지나가면, 값을 true로 변경하도록 하였습니다. 그리고 dfs를 돌면서 만약 해당 graph 위치에 도착했을때 visited가 false 이면 상,하,좌,우 로 이동하면서 dfs를 반복합니다. 만약 돌다가 visited가 true 이면 이미 지나갔던 알파벳을 만난것이므로 answer 에 max 값으로 입력합니다. 그..

[Eric's 백준] 27465번 - 소수가 아닌 수 - Java - KSA Automata Winter Contest

이번에 풀어볼 문제는 마찬가지로 KSA Automata Winter Contest 의 A번 문항으로 나왔던 문제 입니다. 이 문제는 그래도 생각보다 간단합니다 임의의 정수 N을 받고서 그 N값 '이상'의 임의의 소수가 아닌 수를 출력하면 되는 문제 입니다. 코드 저의 경우에는 isPrime() 이라는 method를 만들고나서, N이상부터 while문을 돌면서 소수가 아닌수가 나오면 while문을 멈추면서 출력을 하도록 코드를 구현해보았습니다. isPrime() method에서 Math.sqrt를 사용하였는데요, 이는 2부터 루트 n 까지의 범위에서 소수를 체크판별해주는 함수입니다. 범위가 2에서 루트n 까지 인 이유는 소수는 1과 자기 자신으로만 나누어지는 숫자이기 때문이죠!

[Eric's 백준] 27467번 - 수학 퀴즈 - Java - KSA Automata Winter Contest

문제 안녕하세요! Eric 입니다! 오늘은 제가 어제 KSA Automata Winter Contest 대회에 나가서 풀었던 문제 중 C번 문제 였던 수학퀴즈 라는 문제를 풀어 보도록 하겠습니다! 고등학교 이후에는 방정식을 쓴적이 별로 없어서 기억이 가물가물해서 처음에는 문제를 이해하는데 무슨말이지? 하고 생각했었는데, 아직은 그래도 제 뇌가 살아 있나봅니다 금방 기억나서 문제를 풀었습니다. 풀이 문제를 보시면 x^2+x+1 = 0 을 통해서 하나의 규칙을 볼 수 있습니다. 그건 x^3=1 이라는 사실입니다. 그렇게 되면 저같은 경우에는 pw + q 부분에서 하나의 규칙대로 밑 사진을 보시는것처럼 x의 제곱수에 들어가는 수가 3으로 나눈 값의 나머지에 따라서 하나의 규칙대로 수를 더해 주면 되는 사실을 ..