본문 바로가기

알고리즘31

프로그래머스 Level2 요약정리 (정답률 높은 문제 - 2~8번) JadenCase 문자열 만들기 - // 각 문자열을 쪼개서 " " 나오면 다음값을 바꾸기 최솟값 만들기 - // 낮은수랑 큰수랑 곱해야되는 알고리즘 올바른 괄호 - 일반적인 stack 문제이지만 효율성을 생각해야됨 // 효율성 = split("") 보다는 toCharArray() 캐릭터로 접근 // Stack에 '(' 하나의 문자만 누적된다면 자료구조를 사용하지 않고 int변수에 갯수만 +/- 시키는 것이 유리 이진 변환 반복하기 - // 재귀함수, 10진 -> 2진 만들기 String binary = Integer.toString(n,2); 숫자의 표현 - 반복문 다음 큰 숫자 - 현재의 숫자의 비트의 수가 4이면 현재의 수보다 크면서 비트수가 동일한 최소값을 구하는 문제 // Integer.bitC.. 2023. 3. 24.
자바 10 진수 -> 2진(Integer, String) 10진수를 -> 2진수 문자열로 radix : 몇진수로 할 것인지 , 16을 입력하면 16진수로 변환 2진수 문자열을 -> 2진수 숫자로 2진수를 -> 10진수로 Integer.parseInt 는 10진수로 만들어줌 ( 2진 -> 10진, 8-> 10진 등 가능) ex ) Integer.parseInt("1010", 2) -> 10 출력 - 문자열이 8진이면 , 8 10진수를 2진수로 바꿨을때 1비트의 개수 Integer.bitCount(정수) 정수를 입력하면 2진수에서 1의 비트가 몇개인지 리턴함 2023. 3. 24.
코드스테이츠 백엔드 부트캠프 43기 (28일차-코딩테스트) 오랜만에 블로그에 회고를 쓴다... 몇일 글쓰는게 귀찮게 느껴졌으며 다시 마음을 잡고 회고를 시작한다. 코딩테스트를 공부하면서 탐욕 알고리즘, 구현, 완전 탐색 알고리증, BFS, DFS 등을 학습하며 문제를 풀고있다. 예전에는 문제를 보면 아무생각 없이 머리를 써가면서 대충 풀었다면 이제는 이게 어떠한 알고리즘을 활용하는 문제인가를 떠올리고 푸려고 노력한다. 오늘은 코플릿에 있는 코딩테스트 5번,6번,7번,8번을 풀어보았다. 조합은 순서에 상관이 있으며 중복이 있어서는 안됨 ! ( 조합 : 순서 상관 O -> ( 1,2,3 - 1,3,2 순서가 달라도 같음) 7번 문제는 정해진 수만큼 돌면서 안겹치게만 수를 구하고 거기서 그 수의 합이 소수인지 찾는 문제 였다. 나는 소수를 찾을 때 나눠지는게 2개이상.. 2023. 1. 25.
SW Expert academy 백만장자프로젝트 [자바] 나타날수 있는 공식 3가지 1. 10 7 6 // 마지막 까지 작아져서 사는게 손해 2. 3 5 9 // 마지막이 제일 값이 높아 마지막 전까지 사놓고 마지막에 팔기 3. 1 2 3 1 2 // 1 2 사고 3에 2개 팔고 그 다음 1에 사고 2에 팔고 tip 1) Recursion을 이용하자 1) 가장 높은 값은 미리 Array.sort()를 통하여 높은값 변수에 두고 선언한다. 2) for문을 돌며 가장 높은값을 찾는다. (But 높은 값이 첫번째 일 경우 그 값을 빼고 다시 계산) 1. 응용 // 큰 값이 첫 번째 // 큰 값이 첫 번째로 계속 나올경우 이익이 없음 0원 2. 응용 // 큰 값이 마지막 // 큰 값이 마지막이다? max값 == length-1 -> 바로 return 이익; 3.응용 .. 2022. 11. 17.