생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/q1000/Q1978.java 주어진 숫자들 중 소수의 개수를 출력하여라. 처음 생각소수를 구할 수 있는 다양한 방법들이 있지만 에라토스테네스 체를 사용하는것이 가장 간단하면서 괜찮은 속력을 보장해주는것 같다. 특히, 이처럼 다양한 숫자들을 검사해야할 때는 매번 소수 판별을 하는 것보다 에라토스테네스 체를 이용해서 한 번에 구해놓는것이 좋다.▶ 범위가 1000까지 이므로 1000이하의 모든 소수를 구해놓은 뒤, 주어진 숫자들중 소수의 개수를 세어 출력해주었다. 방안1) Java 풀이 123456789101112131415161718192021222324252627282930packa..
생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/q1000/Q1476.java 준규가 사는 나라는 다른 연도 계산법을 사용한다. E S M 으로 나눠지며 각 년도의 시작은 1이다. E는 1~15, S는 1~28, M은 1~19를 반복하며 1년이 지나면 각년도가 1씩 올라간다. 준규가 사는 나라의 년도가 주어졌을 때, 우리의 년도로 몇 년인지 출력하여라. 처음 생각카잉 달력 문제 같은 경우랑 같은 풀이법을 적용하면된다. 다만 카잉 달력 같은 경우는 범위가 무척 크기 때문에 정직하게 풀 수 없었지만 이번 날짜 계산 문제는 제한 숫자가 적으므로 정직하게 풀어주었다.▶ te,ts,tm 변수를 초기값 1로 선언해주고, e,s,m과 같아질 ..
오늘은 생애 첫 콘서트를 가보았다!! 그것도 디바로 소문난 에일리의 콘서트를!! 다음 주 월요일부터 교육을 다녀야 하기 때문에 마지막으로 논다는 생각으로 갔다왔다ㅎㅎ 학교 축제 같은 공연 말고 이렇게 정식으로 콘서트를 가보는건 처음이라 출발 전부터 준비물이 있어야하나 찾아보기도 하였지만 결론은 그냥 맘 편히 갔다오면 된다는걸 배웠다. 콘서트장에 도착하고 처음에는 그냥 바닥에 오밀조밀하게 놓여있는 플라스틱 의자를 보면서 값비싼 티켓의 값어치에대해서 살짝 실망을 했다. (참! 사람 엄청 밀리고 그럴거 같아서 돌아다니다 40분이나 일찍 갔는데 그냥 시작 5~10분 정도에 가면 충분할 것 같다.) 오랜 기다림 끝에 공연이 시작되고 웅장한 음악들과 레이저들이 나는 가만히 있는데 진동과 퍼포먼스로 몸을 울려댔다. ..
생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/q1000/Q4673.java 양의 정수 n에대해서 n과 n의 각 자리수를 더하여 새로운 수를 만들 수 있다. 예를들어 33 이면 33+3+3=39, 39+3+9=51.... 이런 식으로 쭉 만들 수 있다. 이런식으로 만들 수 없는 수를 셀프 넘버라고 한다. 10000 이하의 셀프 넘버를 출력하여라. 처음 생각입력이 주어지지 않고 10000 이하의 셀프 넘버를 구해서 출력 하기만 하면 된다. 셀프 넘버란 위의 조건으로 만들어 지지 않는 수이므로 조건으로 만들어지는 수들을 구해서 그 수들을 제외한 수를 답으로 선택하면된다.▶ 1~10000까지의 숫자중 답을 내어야하므로 arr[1000..
생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/q1000/Q9095.java n이 주어질 때, 1과 2와 3을 이용해서 n을 만들 수 있는 경우의 수를 출력하여라. 더하는 순서에 따라 다른 가지수로 인정한다. 예를들어 1+2와 2+1은 다른 가지수이다. n의 최대값은 11까지 주어진다. 처음 생각이전에는 재귀를 통한 DFS 완전 탐색을 통해 문제를 풀었었다. [백준] 9095번 1, 2, 3 더하기 이번에는 풀고보니 DP로 푼걸로 봐서 이전 보다는 풀이 접근이 좋아진것 같다는 생각이 든다.▶ 이전에 풀었던 완전탐색의 경우는 N의 크기가 커질경우 스택 초과 에러나 시간 초과를 받을 수도 있지만 DP는 O(N)으로 접근이 가능하기 ..
생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/q1000/Q1463.java 다음 3가지 연산을 이용해서 1로 만들 수 있는 최소의 연산 수를 구하여라. 1) 3으로 나눠 떨어진다면 3으로 나눈다. 2) 2로 나눠 떨어진다면 2로 나눈다. 3) 1을 뺀다. 처음 생각생각나는건 2가지 방법이였다. BFS를 이용해서 3개의 연산을 차례로 진행해 나가면서 1로 만들어졌을 때 카운트 변수를 출력하는 방법과 다이나믹 프로그래밍을 이용해서 값을 찾는 방법이였다.▶ 문제 분류가 DP로 되어있으므로 DP 식으로 풀어보았다. 다음 생각생각을 단순히 하면서 접근을 해보자. 1로 만들수 있는 최소 연산 수를 구하는 법이다. Bottom Up 과 T..
생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/q10000/Q16637.java 괄호를 추가하여 식의 최대값을 얻어내라. 괄호 안에는 1개의 연산자만 있을 수 있으며 괄호는 1중으로만 칠 수 있다. 즉, 2중 괄호 이상은 안된다. 연산자의 기호에 상관없이 앞에서부터 연산을 한다. 처음 생각어디서 풍문으로 듣기로는 11월 삼성 SW 역량테스트 A형 문제와 비슷하다고합니다. 다음 생각평범한 식이 주어지면 괄호를 쳐서 최대값이 되도록 만들어야한다. 즉, 식을 계산해 주어야한다.▶ 따라서 숫자와 식을 분리해서 각각의 List에 넣어주었다. ▶ 식은 숫자가 먼저 시작되므로 부호의 i 번째 index는 식의 i+1 번째 index와 연관이..
생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/q1000/Q7569.java 이전 토마토 문제의 확장 문제이다. 상자가 여러겹 쌓여있으며 익은 토마토가 위 아래 상자의 토마토에까지 영향을 끼친다. 처음 생각우선 이전 토마토 문제인 [백준] 7576번 토마토 와 풀이를 똑같이 했다.▶ 다른점이라면 위 아래 상자를 생각해줘야 한다는 것이였다. 다음 생각한 상자를 사용할 때 2차 배열로 표현할 수 있었다. 그럼 문제가 간단해진다. 층을 표현할 위치를 추가해서 3차 배열로 표현을 해주었다.▶ [층][그 층의 토마토 x 위치][그 층의 토마토 y 위치]로 배열을 사용하였다.▶ 기존의 문제에서 배열로 주변 토마토들의 BFS 탐색을 진행하였..
생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/q1000/Q7576.java 토마토가 담겨있는 박스의 상태를 준다. 0은 익지않은 토마토, 1은 익은 토마토, -1은 토마토가 없는 공간을 나타낸다. 익은 토마토의 주변에 익지않은 토마토가 있다면 그 토마토를 하루 뒤에 익게만든다. 이 때, 박스 안의 모든 토마토를 익게 만드는 때까지 걸리는 날짜를 출력하여라. 모든 토마토를 익게만들수 없다면 -1을 출력하여라. 처음 생각익은 토마토(1)을 기준으로 상 하 좌 우 탐색을하고 또 익은 토마토로 인해 익게된 토마토로 부터 탐색을 해나가면서 진행을 해야하므로 4방향 모두를 살피면서 탐색할 수 있는 BFS 탐색을 이용하여 풀었다. 다음 생..
생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/q1000/Q2589.java 바다와 섬의 정보가 주어진다 섬들 중 최단거리로 이동했을 때, 가장 거리가 먼 2섬이 보물섬이 된다. 이 때 보물섬이 되는 섬들의 거리를 구하여라. 처음 생각두 섬의 최단거리를 구해야한다. 따라서 BFS를 이용해서 탐색을 진행하였다. 다음 생각어떤 두 섬이 보물섬이 될지 모르므로 모든 섬에 대해서 거리를 따져주었다.▶ 입력 받은 배열을 탐색하면서 섬 표시이 L이 보이면 그 L부터 BFS를 시작하여 거리를 판단하고, 그 거리를 계속 최대값과 비교하였다.▶ 항상 새로운 BFS를 진행하는것이므로 방문 배열도 항상 초기화 시켜주어야한다. 방안1) Java 풀이..
- Total
- Today
- Yesterday