728x90 ✍️ Algortihm/Java11 [백준] 12819번 DNA 비밀번호 ✏️인프런 Do it! 알고리즘 코딩테스트 java 편을 듣고 푼 문제입니다. ✍️풀이방식 슬라이딩 윈도우 알고리즘이란?2개의 포인터로 범위를 지정한 다음 범위를 유지한 채로 이동하며 문제를 해결한다 → 투 포인터 알고리즘과 비슷하고 원리도 간단 keypoint : 슬라이딩 윈도우 원리 이해 , 실제 문자열과 관련된 배열 처리 슈도 코드 작성//배열 저장 (s 배열 p 배열 저장 ) S(문자열 크기) P (부분 문자열의 크기) A( 문자열 데이터) CheckArr(비밀번호 체크 배열) //변수 선언 myArr(현재 상태 배열) cheackSecret(몇 개의 문자와 관련된 개수를 충족했는지 판단하는 변수) P 범위(0~p-1)만큼 s 배열에 적용하기 , 유효한 비밀번호인지 판단for(i를 .. 2024. 12. 29. [백준] 2743 단어 길이 재기 - JAVA ✍️풀이방식 String의 length 메소드를 사용해서 길이를 반환했다String 관련 메소드 🌟문자 추출 charAt()문자열 비교 equals()바이트 배열로 변환 getBytes()문자열 찾기 indexOf()문자열 길이 length()문자열 대치 replace()문자열 잘라내기 substring()알파벳 소대문자 변경 toLowerCase(), toUpperCase()문자열 앞뒤 공백 잘라내기 trim()문자열 변환 valueOf() 🖥️문제풀이 import java.util.*;import java.io.*;public class Main{ public static void main(String[] args)throws IOException { BufferedRead.. 2024. 11. 23. [백준] 9086 문자열 - JAVA ✍️풀이방식 처음에 간단하게 while문을 사용하려고 했으나 java에서는 c++이나 다른 언어처럼 whle문안에 저런 식으로 쓰는 것이 안된다고 한다. (Java에서는 C나 C++처럼 T--을 boolean 조건으로 사용할 수 없다 )while(T--){ int i=0; String str = br.readLine(); name[i]=str.substring(0,1)+ str.substring(str.length()-1, str.length()); i++; } String의 메소드 중 하나인 substring 함수를 사용해서 접근하였다. 또한 while문도 for문으로 변경해주었다.for(int i=0;i 🖥️문제풀이 impo.. 2024. 11. 20. [백준] 1940번: 주몽의 명령 - JAVA 백준에 신기한 문제가 많다는 건 알고 있었는데 냅다 이름이 주몽으로 되어있어서 좀 웃겼던 문제주몽님 보고계신가요 21세기엔 철기군을 양성하기 위해서 코딩을 합니다 ✍️풀이방식 1. 재료의 개수 , 갑옷만드는 데 필요한 수 정의 후 입력받기2. N개의 재료들이 가진 고유한 번호들이 공백을 사이에 두고 주어짐 3. 받은 재료를 정렬해서 풀기 (후에 투 포인터 사용) 투 포인터 이동 원칙 A[i] + A[j] > M; j--; // 번호의 합이 M보다 크기 때문에 큰 번호 index 감소 A[i] + A[j] > M; j--; // 번호의 합이 M보다 작으므로 작은 번호 index 증가 A[i] + A[j] > M; j--; // 양쪽 포인터를 모두 이동시키면 count 증가 🖥️문제풀이 im.. 2024. 11. 13. [백준] 2018번: 연속된 자연수의 합 구하기 - JAVA ✍️풀이방식 투 포인터를 활용해서 풀기 O(n)의 시간복잡도 알고리즘 사용할 것 * 입력되는 연산 수가 많으면 꼭 시간복잡도를 생각해서 관련 알고리즘을 적용시켜야합니다. 투 포인터 알고리즘이란? 1차원 배열에서 각자 다른 원소를 가리키고 있는 2개의 포인터를 조작해가면서 원하는 값을 찾을 때 까지 탐색하는 알고리즘1. 시작점과 끝점이 첫번째 원소의 인덱스를 가리키도록 한다. (strat, end) 2. 현재 부분 합이 M과 같다면 count3. 현재 부분 합이 M보다 작다면 end를 1 증가 4. 현재 부분 합이 M보다 크거나 같다면 start를 1 증가5. 모든 경우를 확인할 때까지 2-4번 과정을 반복 투 포인터 관련 개념 참고하였습니다. https://butter-shower... 2024. 11. 11. [백준] 11659번: 구간 합 구하기 4 - JAVA 백만년만에 코테를 풀어봤습니다... (앞으로 꾸준히 풀자) ✍️풀이방식 1초에 1억번 연산 -> 0.5초면 5천만번 연산이 일어난다는 뜻 데이터의 범위가 100,000을 넘어가는 것을 주의하면서 풀 것! 합 배열을 이용한 구간합을 사용해서 문제를 풀 것 합배열, 구간합 공식 S[i] = S[i-1]+A[i] // S가 합배열 S[j]-S[i-1] // 구간합 공식 또한 받는 데이터의 양이 많기 때문에 Scanner가 아닌 Buffer로 구현할 것 (까먹지 말기...) 🖥️문제풀이 import java.util.*;import java.io.*;public class Main{ public static void main(String[] args) throws IOException .. 2024. 11. 10. 이전 1 2 다음 728x90