본문 바로가기

Java37

[프로그래머스] [3차] 자동완성 Java 문제입력포털 다음에서 검색어 자동완성 기능을 넣고 싶은 라이언은 한 번 입력된 문자열을 학습해서 다음 입력 때 활용하고 싶어 졌다. 예를 들어, go 가 한 번 입력되었다면, 다음 사용자는 g 만 입력해도 go를 추천해주므로 o를 입력할 필요가 없어진다! 단, 학습에 사용된 단어들 중 앞부분이 같은 경우에는 어쩔 수 없이 다른 문자가 나올 때까지 입력을 해야 한다. 효과가 얼마나 좋을지 알고 싶은 라이언은 학습된 단어들을 찾을 때 몇 글자를 입력해야 하는지 궁금해졌다. 예를 들어, 학습된 단어들이 아래와 같을 때gogoneguildgo를 찾을 때 go를 모두 입력해야 한다. gone을 찾을 때 gon 까지 입력해야 한다. (gon이 입력되기 전까지는 go 인지 gone인지 확신할 수 없다.) guild를.. 2025. 8. 8.
[백준] 31945번: 정육면체의 네 꼭짓점 Java 문제3차원 좌표공간 위의 8개 점 P_0 = (0,0,0), P_1 = (0,0,1), P_2 = (0,1,0), P_3 = (0,1,1), P_4 = (1,0,0),P_5 = (1,0,1), P_6 = (1,1,0), P_7 = (1,1,1)을 꼭짓점으로 하는 정육면체 S가 있다. 주어진 네 꼭짓점이 정육면체 S의 한 면 위에 있는지 판정해 보자. 입력첫째 줄에 테스트 케이스의 개수  T가 주어진다.  ( 1 둘째 줄부터 T개의 줄에 걸쳐 정육면체  S의 각 꼭짓점을 의미하는 서로 다른 네 정수  a, b, c, d가 공백으로 구분되어 주어진다.  (0  출력각 테스트케이스마다 한 줄에 하나씩 P_a, P_b, P_c, P_d가 정육면체 S의 한 면 위에 있는 네 꼭짓점이면 YES, 그렇지 않으면 NO.. 2024. 6. 23.
[백준] 31288번: 캬루 Java 문제이번에 캬루는 소수를 배신했다. 소수의 한 자리를 바꾸어서 소수가 아니게 만들어버렸다. 구체적으로는, 0으로 시작하지 않는 N자리 소수 P에 대해 어떤 수 Q가 P-캬루라는 것은 다음을 모두 만족하는 것을 의미한다. • Q는 2 이상의 N자리 정수이며, 0으로 시작하지 않는다. • P와 Q의 서로 다른 자릿수는 하나뿐이다. • Q는 소수가 아니다. 다음은 N=2, P= 19일 때 P-캬루와 P-캬루가 아닌 수의 예시이다. • Q = 9는 1자리 정수이므로 19-캬루가 아니다. 09처럼 수가 0으로 시작할 수는 없다. • Q = 92는 P = 19와 서로 다른 자릿수가 두 개이므로 19-캬루가 아니다. • Q = 29는 소수이기 때문에 19-캬루가 아니다. • Q = 16,49 등은 19-캬루이다. N.. 2024. 2. 6.
[백준] 29332번: 보물 지도 JAVA 문제 오른쪽으로 갈수록 x좌표가 증가하고 위쪽으로 갈수록 y좌표가 증가하는 무한한 좌표평면 위에 살고 있는 여러분은 어느 날 보물 지도를 주웠다. 아쉽게도 여러분이 주운 보물 지도는 여러 개의 조각으로 나뉘어 있어 정확히 어디에 보물이 묻혀 있는지는 알 수 없었다. 그래도 열심히 주어진 지도 조각들을 분석한 결과, 보물이 묻힌 위치에 대해 다음과 같은 정보를 얻을 수 있었다. 보물이 묻혀 있는 위치는 어느 정수 격자점 위이다. 보물이 묻혀 있는 위치를 나타내는 N개의 단서가 있다. 각 단서는 두 정수 x_i, y_i와 문자 d_i로 이루어져 있다. 문자 d_i는 L, R, U, D 중 하나이며, 각각 보물이 (x_i, y_i) 좌표보다 왼쪽, 오른쪽, 위쪽, 아래쪽에 묻혀 있음을 의미한다. 모든 정보는 .. 2023. 9. 3.
[백준] 28682번: 재우야 임관하자 JAVA 문제이 문제는 인터랙티브 문제이다. 아래 노트에 나와 있는 방식으로 입출력을 진행해야 한다. 2023년 2학기, 드디어 고려대학교에 드랍(수강포기제)이 부활한다! 이번 학기를 마치고 졸업하는 사이버국방학과 재우는 원래도 DP 문제를 좋아했는데, 최근에 시즌 2가 나온 드라마 시리즈를 보고 졸업 후 장교로 임관하기로 마음먹었다. 재우는 임관을 위해 최대 3개까지 수강할 수 있는 운동 과목을 수강하기로 했다. 작년에 F를 받은 “수영” 과목의 재수강은 물론, “축구”와 “볼링” 과목까지 최대로 수강하게 되었다. 드랍을 할 수 있는 날이 다가오자, 재우는 갑자기 작년에 수영을 F 받은 기억이 떠올라 PTSD가 왔다. 이에 재우는 지도 교수님께 면담을 요청했고, 재우의 정보를 보던 교수님께서는 재우가 세 과목 .. 2023. 8. 19.
[백준] 28432번: 끝말잇기 JAVA 문제 끝말잇기는 단어를 중복하지 않고 단어의 맨 끝 글자에 이어서 말하는 놀이입니다. 끝말잇기 기록은 단어들의 나열로 이루어집니다. 올바른 끝말잇기 기록은 각 단어의 마지막 글자가 다음 단어의 첫 글자이며, 단어가 중복되어서 나타나면 안 됩니다. 끝말잇기 기록이 주어지는데, 하나의 기록은 “?”로 가려진 채로 들어옵니다. “?”에 들어갈 수 있는 문자열들의 후보가 주어질 때, 올바른 끝말잇기 기록을 만드는 “?”에 들어갈 문자열을 출력하세요. 입력 첫째 줄에 n(5 ≤ n ≤ 40)이 주어진다. 첫 줄에 끝말잇기 기록의 길이 N 이 주어집니다. (1≤N≤100) 둘째 줄부터 다음 N개의 줄에는 끝말잇기의 기록 S_1,⋯, S_N이 한 줄에 하나씩 주어집니다. 여기서, 하나의 S_i는 “?” 로 주어집니다.. 2023. 8. 11.
[레이튼 미스터리저니] 이쪽저쪽 프루트 요즘 출퇴근 할 때마다 자주 하는 모바일 게임으로 레이튼 미스터리저니 - 일곱 대부호의 음모를 하고 있다. 지금은 모든 스토리를 진행하고, 비밀 모드로 수수께끼를 풀고 있는데, 한 파트가 진행하는데 너무 오랜 시간이 걸려 알고리즘을 통해 문제의 답을 도출하는 프로그램을 짜려고 한다. 이쪽저쪽 프루트 이쪽저쪽 프루트는 비밀모드-일간수수께끼 통신 중 한 수수께끼 장르로 이미 고정된 과일의 배치를 참고하여 정해진 규칙에 따라 과일가게의 배치를 지정해야 한다. 규칙은 다음과 같다. 1. 과일의 종류는 4가지 이다 ( 사과,포도,바나나,메론) 2. 8x8 타일 내에 가로줄, 세로줄에 과일의 종류가 각각 2개씩 들어간다. 3. 연속해서 같은 종류의 과일을 배치할 수 없다. 문제 풀이 일종의 스도쿠나 마방진 문제와 .. 2023. 7. 30.
XSS 취약점 조치 운영하고 있는 서비스에서 취약점 점검 결과 XSS 공격에 취약점이 발견되었다. 1.XSS 공격 input이나 textarea 같은 곳에 html 태그를 넣고, 자바스크립트 실행코드를 넣어 작동되도록 만든다. 2. 조치 방법 1) 위험한 문자열을 변환하여 저장 - 해당 방법은 이미 서비스에 적용되고 있었다. 꺽쇠표시는 각각 &lt, &gt 와 같이 변환하여 저장함으로서 1차적으로 방어는 가능하도록 하였다. 그러나... 취약점 점검하시는 해커 분이 변환한 파라미터를 다시 꺽쇠로 변환하여 요청을 하니 스크립트가 실행되어버리는 현상이 발생하였다. 2) 이용 - jsp의 경우, 보통 데이터 값을 el로 출력하는 경우가 많은데 이는 스크립트가 포함되면 그대로 실행되기에 취약한 방법이라고 한다. - 이를 해결하는 방.. 2022. 11. 16.
반응형