전체 글(64)
-
StringBuffer && String 클래스의 문제점
StringBufferStringBuffer는 자기 자신(this)을 반환한다.메소드 체이닝 : 자기 자신을 리턴해 계속해서 자신의 메소드를 호출하는 방식.package javaStudy;public class StringBufferExam { public static void main(String[] args) { StringBuffer sb = new StringBuffer(); sb.append("hello"); sb.append(" "); sb.append("world"); String str = sb.toString(); System.out.println(str); StringBuffer sb2 = ne..
2024.11.04 -
[백준]17071_숨바꼭질5
https://www.acmicpc.net/problem/17071 풀이- 수빈이가 도착하는 시간을 홀/짝으로 구분하여 기록 - 동생이 수빈이가 방문한 곳에 방문하면 그 시간을 반환 - 짝/홀 나누는 이유: 동시에 같은 위치에서 만나는지 확인하기 위함방문체크를 홀짝초 구분하지 않고하면, 답을 구하지 못함짝수초에 도착해서 홀수초에 도착을 못하게 하는 상황때문 그 지점에 도착한 시간에 따라 동생이랑 겹치는지를 정확히 알수있음package BJ;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;import java.util.LinkedList;import j..
2024.11.02 -
[백준]6549_히스토그램에서 가장 큰 직사각형
https://www.acmicpc.net/problem/6549문제 설명그림처럼 연속되는 사각형들 중에서 합쳐서든 혼자든 넓이가 가장 큰 사각형의 넓이를 구하면 되는 문제풀이문제를 이해하는데 어려움은 없었지만, 입력이 10의5승으로 크기 때문에 O(N^2) 미만의 시간복잡도 풀이를 찾아야했다. 처음 아이디어는 배열에 높이 정보를 입력받고, 높이, 너비, 이전 높이 정보를 활용해서 뒤에서부터 높이를 구하려했다. 1. 현재 높이가 전 높이보다 낮아진거면 길이 증가, 높이는 현재값으로 하여 넓이구하고, 최대값 갱신2. 현재 높이가 더 크다면 길이 1, 높이 현재값으로하여 넓이 구하고 최대값 갱신이 풀이 틀렸음. 높이가 [1 2 3 4 5] 인경우 값이 잘 나오지만 반대인경우는 값이 틀려지기 때문 맞는 풀이 ..
2024.10.30 -
[백준]18809_Gaaaaaaaaaarden(java)
https://www.acmicpc.net/problem/18809 문제 설명빨간색 배양액과 초록색 배양액 두개를 정해진 개수를 모두 땅에 뿌렸을 때(노란색땅에만 뿌리기 가능)두 배양액은 계속 퍼진다. 퍼지다가 동시에 서로 다른 배양액이 어떤 위치에서 만나면 꽃이 피고, 꽃은 퍼지지않음.필 수 있는 꽃의 최대 개수를 구하자.입력값 호수 : 0땅 : 1배양액 뿌릴 수 있는 땅 : 2풀이1. 모든 배양액을 뿌릴 수 있는 모든 경우를 고려한다.(DFS)2. 뿌려진 배양액 정보를 가지고 꽃이 몇개 피우는지 시뮬레이션한다.(BFS)BFS에서 빨간액은 4 초록액은 3으로 값을 설정하고 이동하다가 같은 시간대에 7(3+4)이 되면 꽃의 개수를 증가시킨다.큐에서 뽑은 값이 꽃이 된거라면 그 경우 제외한다.전체코드pac..
2024.10.30 -
[백준]17298_오큰수
문제링크풀이 데이터를 순회하면서 현재 스택이 비어있다면 일단은 스택에 넣는다. 스택에는 현재 인덱스값을 저장한다. 스택에 있는 값을 peek() 해서 현재 값과 비교를 한다. 만약 현재값이 더 크다면, 현재값이 스택에있는 arr[index]값의 오큰수가 된다. 이는 순차적으로 데이터를 조회하기 때문에 현재값이 더 크다면 스택에 있는 값보다 오른쪽이면서 큰값중 첫번째 위치한 값이된다. 이 과정을 스택에 있는 top값이 현재값보다 크거나 없으면 멈춰야한다. 그래서 스택에 값이 비어있지않을 때를 while문 조건으로한다. while문을 탈출하는 조건중 스택이 빈경우도 있지만, 현재값이 top값보다 작은 경우도 포함한다. 그다음 현재값을 스택에 넣어준다. 마지막으로 스택에 있는 값은 오..
2024.10.14 -
[백준]BJ_9202_Boggle
문제링크문제상근이는 보드 게임 "Boggle"을 엄청나게 좋아한다. Boggle은 글자가 쓰여 있는 주사위로 이루어진 4×4 크기의 그리드에서 최대한 많은 단어를 찾는 게임이다. 상근이는 한 번도 부인을 Boggle로 이겨본 적이 없다. 이렇게 질 때마다 상근이는 쓰레기 버리기, 설거지와 같은 일을 해야 한다. 이제 상근이는 프로그램을 작성해서 부인을 이겨보려고 한다.Boggle에서 단어는 인접한 글자(가로, 세로, 대각선)를 이용해서 만들 수 있다. 하지만, 한 주사위는 단어에 한 번만 사용할 수 있다. 단어는 게임 사전에 등재되어 있는 단어만 올바른 단어이다.1글자, 2글자로 이루어진 단어는 0점, 3글자, 4글자는 1점, 5글자는 2점, 6글자는 3점, 7글자는 5점, 8글자는 11점이다. 점수는 ..
2024.09.20