Super Kawaii Cute Cat Kaoani
본문 바로가기

java4

[백준] 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.
[백준] 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.
[백준] 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.
[JAVA] 자바 코딩 테스트 정리 * 인프런 강의를 보면서 정리 (내용 계속 추가 될 예정) 일반적으로 수행 시간은 1억 번의 연산을 1초의 시간으로 간주하여 예측한다 시간 복잡도 유형빅 오메가 : 최선일 때 연산 횟수를 나타낸 표기법 빅 세타: 보통일 때 연산 횟수를 나타낸 표기법 빅 오 : 최악일 대 연산 횟수를 나타낸 표기법 -> 코딩 테스트에서 선택하는 표기법 연산 횟수 계산 방법연산 횟수 = 알고리즘 시간 복잡도 * 데이터의 크기 시간 복잡도 도출 기준상수는 시간 복잡도 계산에서 제외한다가장 많이 중첩된 반복문의 수행 횟수가 시간 복잡도의 기준이 된다 시간 초과과 되었을 땐 내 로직이 효율적인 지 다시 점검해야한다 (1) 알맞은 알고리즘 선택 기준(2) 비효율적인 로직 찾아서 효율적으로 바꾸기 프로그램에.. 2024. 8. 28.