본문 바로가기

자바7

[백준/자바(JAVA)] 5639 이진 검색 트리 💌문제 https://www.acmicpc.net/problem/5639 5639번: 이진 검색 트리 트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다 www.acmicpc.net 💌풀이 참고: https://girawhale.tistory.com/59 & 챗GPT 문제 구현 전위 순회일 경우, 처음 탐색한 값이 항상 루트이다. 그래서 먼저 처음 값을 루트로 설정해 주어야 한다. 그리고 이후 루프를 돌면서 Node에 insert 함수를 구현하여 현재 노드의 값보다 작으면 왼쪽 자식, 크면 오른쪽 자식으로 넘어가 null일 경우 해당 노드를 생성해주고 아니.. 2023. 2. 25.
[백준/자바(JAVA)] 구간 합 구하기5 11660 Silver 1 💌문제 https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 💌풀이 누적합을 이용해서 풀어야 하는 문제이다. 누적합 아이디어는 배열에 들어있는 값이 바뀌지 않는다는 점을 이용한다. 앞에서부터 차례대로 누적된 합을 구해서 저장해둔 배열을 이용해서 구간 합을 구할 수 있다. 누적합 개념을 이용하지 않으면 시간초과가 발생하게 된다. 누적합은 반복문을 돌면서 이전 원소 인덱스까지의 합과 현재 원소 인덱스의 값을 계.. 2023. 2. 13.
[백준/자바(JAVA)] 스위치 켜고 끄기 1244 Silver 4 💌문제 https://www.acmicpc.net/problem/1244 1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net 💌풀이 구현문제로, 문제에서 요구하는 대로만 구현하면 된다. 학생 수만큼 루프 돌면서 현재 원소가 남학생이라면 스위치 개수만큼 루프를 자기가 받은 수만큼 배수로 증가시켜가면서 전부 스위치를 반대로 바꾼다. 만약 현재 원소가 여학생이라면 post랑 back을 각각 현재 원소의 -1, +1 인덱스로 정의해준다. 그리고 계속 while 루프 돌면서 post랑 back 위치의 스위치 상태가 .. 2023. 2. 11.
[백준/파이썬(Python), 자바(JAVA)] 회의실 배정1931 Silver1 💌문제 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 💌풀이 그리디 알고리즘 문제이다. 그리디 알고리즘이란, 최적의 솔루션을 찾기 위해 알고리즘의 각 단계에서 최적의 선택을 하는 수학적 최적화 기법이다. 솔루션을 반복적으로 구성하여 최적화 문제를 해결하는데 사용하며, 항상 현재 사용 가능한 최상의 값을 선택한다. 이러한 그리디 알고리즘은 구조가 단순한데, 개인적으로는 솔루션 떠올리는게 어려운 것 같다. 또한, 그리디는 간단하고 효율적이지만 항상 최적의 솔루션이 나오지는 않을 수 있다. 이럴 때는 DP등의 다른 알고리즘을 사용해야 한다. 아래 코드에 대한 설명.. 2023. 2. 10.