본문 바로가기

전체 글

(155)
백준 10434번 : 행복한 소수 문제 10434번: 행복한 소수 (acmicpc.net) 10434번: 행복한 소수 각 테스트 케이스마다, 테스트 케이스의 번호, 입력받은 수, 만일 M이 행복한 소수라면 YES 아니라면 NO를 공백으로 각각 구분하여 출력한다. www.acmicpc.net 정수가 입력될 때 그 정수가 행복한 소수인지를 출력하는 문제. 행복한 소수란, 각 자리의 제곱의 합을 구하는 것을 반복했을 때 1이 나오는 소수 아이디어 ❗어떤 소수가 행복한 소수가 아닌 경우, 각 자리 제곱의 합은 어떤 패턴을 띄게 되어있다. 행복한 소수는 우선 소수여야 한다. -> 1과 소수가 아닌 수는 바로 NO 출력 입력된 수가 소수이면, 제곱의 합을 구한 다음 이미 나온 수인지를 반복문 안에서 확인한다. 이미 나온 수인지 확인하는 방법 : 합..
백준 2992번 : 크면서 작은 수 문제 2992번: 크면서 작은 수 (acmicpc.net) 2992번: 크면서 작은 수 정수 X가 주어졌을 때, X와 구성이 같으면서 X보다 큰 수 중 가장 작은 수를 출력한다. 수의 구성이 같다는 말은, 수를 이루고 있는 각 자리수가 같다는 뜻이다. 예를 들어, 123과 321은 수의 구성이 www.acmicpc.net 아이디어 1. case를 분류해서 조건식으로만 푸는 방법 각 자리수를 index 취급 숫자가 모두 내림차순으로 정렬되어있으면, 더 커질 수 없으므로 0출력 숫자 중에 오름차순으로 정렬된게 있는지 확인, 이는 숫자의 순서를 바꿈으로써 커질 수 있는 위치를 뜻함 오름차순이 발견된 idx 중에서 가장 뒤에 있는 idx를 찾기 = point로 저장 point 뒤에 있는 수 중에서 point 해..
[JAVA] 순열(Permutation) 참고 블로그 : 순열 Permutation (Java) :: 뱀귤 블로그 (tistory.com) 순열 Permutation (Java) 순열연습 문제 순열이란 n 개의 값 중에서 r 개의 숫자를 모든 순서대로 뽑는 경우를 말합니다. 예를 들어 [1, 2, 3] 이라는 3 개의 배열에서 2 개의 숫자를 뽑는 경우는 [1, 2] [1, 3] [2, 1] [2, 3] [3, 1] [3, bcp0109.tistory.com 순열이란, n개의 후보군 중에서 r개를 선택해서 순서대로 나열하는 것을 말한다. 수식으로 nPr 로 표현하기도 한다. 값은 n!/(n-r)!로 구할 수 있다. 그럼 순열을 통해서 얻을 수 있는 전체 순서쌍은 어떻게 구할 것인가?!🤔 우리가 순열을 구하는 방법 일단 어떻게 코드를 짤지부터 생..
[JavaScript] API를 이용해서 내 위치(위도, 경도) 가져오기 navigator.geolocation.getCurrentPosition( ) 자바스크립트에서 지원하는 WEB API 중에 navigator.geolocation 가 있는데, 이 API의 getCurrentPosition( ) 함수를 실행함으로써 현재 위치와 시간을 받아올 수 있다. getCurrentPosition( )의 인자는 success / error / [options]이다. 인자에 대한 자세한 설명 : https://developer.mozilla.org/ko/docs/Web/API/Geolocation/getCurrentPosition success 함수는 Geoposition 객체를 매개변수로 받는 함수이다. Geoposition 객체에는 컴퓨터의 위치 정보와 시간 정보가 담겨있으므로, s..
백준 2304번 : 창고 다각형 문제 2304번: 창고 다각형 (acmicpc.net) 2304번: 창고 다각형 첫 줄에는 기둥의 개수를 나타내는 정수 N이 주어진다. N은 1 이상 1,000 이하이다. 그 다음 N 개의 줄에는 각 줄에 각 기둥의 왼쪽 면의 위치를 나타내는 정수 L과 높이를 나타내는 정수 H가 한 개의 www.acmicpc.net 아이디어 첫번째 trial : 극댓값을 기준으로 설계 (엄청 공들여서 설계했는데, 틀렸었음 ㅠ) 기둥들을 배열로 보면, 위 그림은 {4,0,6,3,0,0,10,0,0,4,0,6,0,8}이라 생각할 수 있다. 이때 기준이 되는 기둥들의 특징은 '기울기가 바뀌는 부분(=극댓값)'이라 생각함 따라서 극댓값에 해당하는 배열로 표시하고, 그 배열을 돌면서 너비를 구함 틀린 이유 : 극댓값으로 접근을 ..
[JSP] 인텔리제이에서 서블릿 프로젝트 설정하기 순서 1. new project 2. 왼쪽 탭에서 jakarta EE 선택, (최근에 java EE에서 jakarta EE로 바뀜) Create Git repository 체크 (추천) 3. Template : web application 4. Application server : new > tomcat server 선택, tomcat 다운받은 위치 입력 시행착오 정상적으로 프로젝트가 설정된 경우 webapp 패키지, WEB-INF, web.xml, index.jsp폴더가 생성되어야 하는데 내 프로젝트에선 그런 것들이 생성되지 않은 문제가 발생하였다. 처음에는 java EE 가 jakarta EE로 바뀐 것에 의해 영향을 받아서 구조가 달라졌다 생각했다. 따라서 적당한 위치에 적당한 파일을 넣으면 웹이 ..
백준 5397번 : 키로거 문제 5397번: 키로거 (acmicpc.net) 5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입 www.acmicpc.net 아이디어 1406번과 동일한 로직으로 풀이했다. 1406번은 텍스트와 명령어가 따로 주어졌다면, 5397번은 인라인으로 주어졌다는 차이점 정도! 심지어 StringBuilder로 delete, insert하다가 시간 초과 떠서 데크 2개로 해결한 것조차 동일.. 커서가 나오는 문제는 커서 왼쪽 데크, 오른쪽 데크를 만들어서 풀어야 하나보다! 알게된 것 백준 문제는 무조건 시간 복잡도가 낮은 것으로 풀이해야..
백준 1406번 : 에디터 문제 1406번: 에디터 (acmicpc.net) 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 커서를 이용해서 문자열을 편집하는 문제 아이디어 🔸 첫번째 시도 : 커서와 문자열을 분리해서 해결. 문자열 편집에는 char[ ]을 이용. 결과 : 시간 초과 1. 하나의 명령어가 주어질 때 '커서를 계산하는 함수'와 '문자열을 계산하는 함수'를 호출하므로 함수 호출이 빈번 2. char 배열을 이용했으므로 문자열을 편집할 때마다 새로운 길이의 배열을 만들고, → 매번 공간 복잡도 O(n) 이전 배열을 복사하기 위..