조합이란 n개의 숫자 중에서, r 개의 수를 순서 없이 뽑는 경우를 말한다.조합은, 하나의 원소를 선택 할 경우 + 하나의 원소를 선택하지 않을 경우 이 둘의 합을 나타낸다.👉사과가 5개 있고, 각 사과의 번호가 1,2,3,4,5 일 때 3개의 사과 뽑기3번 사과를
🔻 백준 1654 랜선자르기'랜선자르기'라는 문제를 풀었다. 예제를 입력하고 출력이 제대로 되는 걸 확인했는데도 제출을 하면 틀렸습니다가 계속 떴다. 예제를 예로 들면 802, 743, 457, 539를 문제의 조건에 맞춰 같은 크기로 나눌 수 있는 최대 크기를 구
Big-O는 알고리즘의 효율성을 나타내는 지표. Big-O를 통하여 개선한 알고리즘이 빨라졌는지, 메모리를 많이 잡아 먹지는 않는지 등의 알고리즘의 성능을 판단한다. 알고리즘의 수행시간이 얼마인지를 나타낸다.수행되는 연산의 수를 갖고 계산하며, 알고리즘에 중요하지 않은
금요일부터 가장 고생한 문제. 너무 고생해서 답을 찾기도 했고, 그만큼 주의할 점도 많아서 복기할 겸 기록하려고 한다. 1번째로 고생한 부분은 이진탐색하는 방법 그 자체였다. 탐색 결과를 빠져나오게하는 타이밍이 언제인지를(...) 꽤나 고민했는데, 최대값과 최소값의 차
정점(node)와 그 정점을 연결하는 간선(edge)로 구성된 자료구조의 일종그래프를 탐색한다 = 하나의 정점으로부터 시작해 차례대로 모든 정점들을 한 번씩 방문한다. : 최대한 깊이 내려간 뒤, 더 이상 깊이 갈 곳이 없을 경우 옆으로 이동루트 노드(혹은 다른 임의의
BFS 시작점을 큐에 넣는다. 시작점을 방문체크한다. 큐가 비었다면 끝내기 큐가 비지 않았다면 큐에 최상단에 있는 노드를 꺼낸다. 해당 노드와 인접한 노드를 탐색하여, 방문하지 않은 노드라면 방문체크를 하고, 큐에 넣어준다. 3,4를 반복
DP 다이나믹 프로그래밍은 기본적인 아이디어로 하나의 큰 문제를 여러개의 작은 문제로 나누고, 그 결과를 저장하여 다시 큰 문제를 해결할 때 사용하는 것이다. 큰 문제를 작은 문제로 쪼개서 답을 저장해두고 재활용한다는 점에서 '기억하며 풀기'라고도 부른다. DP를 사
첫번째 풀이팩토리얼 값을 String으로 저장해서, charAt()메소드를 이용하여 뒤에서부터 0의 개수를 카운트하려고 했다. > 작은 숫자의 경우는 오류 없이 계산이 가능하지만, 500!과 같은 팩토리얼 넘버는 '정수형'으로 받지를 못하기 때문에 애초에 targetN
2hours1\. id_list와 그에 따른 메일 발송 결과를 받을 유저 클래스 만들기 key, value 쌍을 지어주기 위해 HashMap 이용2\. report 리스트를 받아 신고당한 유저 클래스 만들기 \- HashMap이용, 다만 신고한 유저가 다수이므로,
1hours성격 유형 검사 hashmap 만들기 ( 유형에 해당하는 알파벳과, 점수를 키쌍으로 묶기)입력되는 값의 횟수만큼 반복문 돌리기 chocies 값에 따라 choices값이 4보다 크면 survey의 두번째 글자에 점수 추가4보다 작으면 survey의 첫번째 글
1hours영단어와, 숫자쌍의 hashmap 만들기받은 문자열의 문자를 하나씩 돌면서 검사하기받은 문자열의 문자가 숫자라면 -> 그대로 정답 Stringbuilder에 추가하기받은 문자열의 문자가 문자라면 -> target문자열 StringBuilder에 추가하기for
30min바로 붙어있는 중복값만 제거 해야함주어진 배열은 -> for문을 통해 Stack에 넣기이 때, Stack의 peek (head를 빼서 확인만 함)을 사용해서 다음에 들어올 arr의 숫자와 stack의 head가 같지 않을때만 stack에 배열을 넣어줌 출력할
1h30m깊이 우선 탐색을 사용하여 numbers 배열의 전체 숫자 탐색재귀함수 사용, 배열을 돌면서 배열의 전체값들이 각각 +,-인 경우를 탐색하며 총합을 구해준다.총합이 target과 같은 값일 때만 answer에 카운트를 올려준다.
배열은 메모리에 연속 공간에 값이 채워져 있는 형태의 자료구조배열의 값은 인덱스를 통해서 참조할 수 있으며, 선언한 자료형의 값만 저장이 가능하다.인덱스를 사용하여 값에 바로 접근할 수 있다.새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어렵다. 값을 삭제하
10minBufferedReader를 사용해 두 줄의 입력값을 받아준다.첫 입력값은 int형으로 선언해 받아준다. n으로 지정해 n번 for문을 돌릴 때 이용두번째 입력값은 연속된 숫자들을 쪼개어 합을 구해야 하므로 String 타입으로 받아준다.for문을 돌면서, 문
30minif문과 for문이 너무 많은 것 같다... 풀긴 했지만 좋지 못한 코드인 것 같다. 발상은 비슷한 것 같은데 굉장히 간단하게 푸셨다. 어떻게 이렇게 풀 수 있는거지? ^.T일단 나의 패착은 Math.max() 함수를 활용하지 않은 게 아닐까 싶다.