전체 글 74

[백준] 3273: 두 수의 합 (JAVA)

문제n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i 입력첫째 줄에 수열의 크기 n이 주어진다. 다음 줄에는 수열에 포함되는 수가 주어진다. 셋째 줄에는 x가 주어진다. (1 ≤ n ≤ 100000, 1 ≤ x ≤ 2000000)출력문제의 조건을 만족하는 쌍의 개수를 출력한다. 풀이1 (틀림)시간 초과 각인데 .. 하고 일단 이중 for문으로 풀었다가 역시나 시간 초과import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;impor..

알고리즘/백준 2024.06.01

[백준] 11328: Strfry (JAVA)

문제C 언어 프로그래밍에서 문자열(string)은 native한 자료형이 아니다. 사실, 문자열은 그저, 문자열의 끝을 표시하기 위한 말단의 NULL이 사용된, 문자들로 이루어진 문자열일 뿐이다. 하지만 프로그래밍 언어에서 문자열을 다루는 것은 매우 중요하기 때문에, C 표준 라이브러리는 문자열을 다루는 데에 매우 유용한 함수들을 제공하고 있다 : 그들 중에는 strcpy, strcmp, strtol, strtok, strlen, strcat 가 있다.하지만, 잘 알려져 있지 않으며, 잘 사용되지도 않는 함수가 하나 있다 : strfry 함수다. strfry 함수는 입력된 문자열을 무작위로 재배열하여 새로운 문자열을 만들어낸다. (역자 주 : 여기에서 입력된 문자열과 새로 재배열된 문자열이 다를 필요는 ..

알고리즘/백준 2024.06.01

[백준] 11721: 열 개씩 끊어 출력하기 (JAVA)

문제알파벳 소문자와 대문자로만 이루어진 길이가 N인 단어가 주어진다.한 줄에 10글자씩 끊어서 출력하는 프로그램을 작성하시오.입력첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다.출력입력으로 주어진 단어를 열 개씩 끊어서 한 줄에 하나씩 출력한다. 단어의 길이가 10의 배수가 아닌 경우에는 마지막 줄에는 10개 미만의 글자만 출력할 수도 있다.풀이출력 형식이 잘못되었습니다 오류가 나와서 쉬운 문제인데 삽질을 했다.. 인덱스가 0번일 때는 줄바꿈을 해주면 안 된다 !substring 함수를 의도한 것 같은데 사용법이 조금 헷갈려서 그냥 StringBuilder를 사용했다..ㅎㅎ 정답 코드import java.i..

알고리즘/백준 2024.06.01

[백준] 1475: 방 번호 (JAVA)

문제다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)입력첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.출력첫째 줄에 필요한 세트의 개수를 출력한다. 풀이 1 (틀림)실버 5로 많이 어렵진 않은 문제 같은데.. 아이디어가 생각이 안 나서 일단 더럽게 짜봤고 당연히 틀렸다! ㅎㅎ..6이랑 9 처리를 어떻게 해야 할까 고민하다가 잘 모르겠어서 다..

알고리즘/백준 2024.06.01

[KB IT's Your Life] 5기 합격 후기

여러 조언과 혼자만의 고심 끝에 애플 아카데미를 포기하고 바로 취업 준비를 선택하게 되었지만 ..상반기 공채가 대부분 끝난 현재 아직도 취준생이다^^.. 채용 인원이 줄어든 것도 맞지만 가장 큰 이유는 역량 부족이라는 생각이 들었고, 이를 보완하기 위해 교육을 찾아보았다.그래서 알게 된 KB IT's Your Life~! KB IT's Your Life는 KB와 고용노동부가 협력하고 멀티캠퍼스가 운영&관리하는 약 6개월간 진행하는 교육이다.이전 기수 후기를 거의 다 찾아봤는데, 이번 기수부터 갑자기 개월 수부터 모집 인원, 교육 과정까지 정말 달라졌다.애초에 관련 정보도 많이 없었다.. 그래도 일단 KB 주관부터 여러 혜택에 끌려 모집 신청을 하게 되었다. 서류서류 전형은 특별한 것 없이 지원 동기, 포..

KB IT's Your Life 2024.05.05

[백준] 1543: 문서 검색 (JAVA)

문제 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한다. 예를 들어, 문서가 abababa이고, 그리고 찾으려는 단어가 ababa라면, 세준이의 이 함수는 이 단어를 0번부터 찾을 수 있고, 2번부터도 찾을 수 있다. 그러나 동시에 셀 수는 없다. 세준이는 문서와 검색하려는 단어가 주어졌을 때, 그 단어가 최대 몇 번 중복되지 않게 등장하는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 문서가 주어진다. 문서의 길이는 최대 2500이다. 둘째 줄에 검색하고 싶은 단어가 주어진다. 이 길이는 최대 50이다. 문서와 단어는 알파벳 소문자와 공백으로 이루어져 있다. 출..

알고리즘/백준 2024.03.25

[프로그래머스] 단어 변환 (JAVA)

문제 풀이 BFS가 DFS보다 어렵게 느껴져서 연습을 위해 풀어보았다. 처음에는 감을 아예 못 잡아서 헤맸는데, 백준의 숨바꼭질과 비슷하다는 생각이 들어서 비슷한 느낌으로 구현하게 되었다. BFS DFS를 익혀가면서 느끼는 건데, visited를 int 배열로 구현할 것인지, boolean 배열로 구현할 것인지 항상 헷갈린다. words 안에 target이 없는 경우 바로 answer를 0으로 리턴한다. check 메서드는 한 글자만 다른지 확인하는 역할을 한다. cntIndex 메서드는 그냥 중복이 싫어서 따로 만든 메서드이다. BFS 메서드에서는 단어 변경 가능한 경우, next(다음 단어 할당할 변수)에 words[i]를 넣는다. next와 target이 같은 경우 words에서의 now 인덱스를 ..

[백준] 2667: 단지번호붙이기 (JAVA)

문제 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. 는 을 단지별로 번호를 붙인 것이다. 지도를 입력하여 단지수를 출력하고, 각 단지에 속하는 집의 수를 오름차순으로 정렬하여 출력하는 프로그램을 작성하시오. 입력 첫 번째 줄에는 지도의 크기 N(정사각형이므로 가로와 세로의 크기는 같으며 5≤N≤25)이 입력되고, 그 다음 N줄에는 각각 N개의 자료(0혹은 1)가 입력된다. 출력 첫 번째 줄에는 총 단지수를 출력하시오. 그리고 각 ..

알고리즘/백준 2024.02.29

[백준] 2606: 바이러스 (JAVA)

문제 신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다. 예를 들어 7대의 컴퓨터가 과 같이 네트워크 상에서 연결되어 있다고 하자. 1번 컴퓨터가 웜 바이러스에 걸리면 웜 바이러스는 2번과 5번 컴퓨터를 거쳐 3번과 6번 컴퓨터까지 전파되어 2, 3, 5, 6 네 대의 컴퓨터는 웜 바이러스에 걸리게 된다. 하지만 4번과 7번 컴퓨터는 1번 컴퓨터와 네트워크상에서 연결되어 있지 않기 때문에 영향을 받지 않는다. 어느 날 1번 컴퓨터가 웜 바이러스에 걸렸다. 컴퓨터의 수와 네트워크 상에서 서로 연결되어 있는 정보가 주어질 때, 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수..

알고리즘/백준 2024.02.26

[백준] 1260: DFS와 BFS (JAVA)

문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. 출력 첫째 줄에 DFS를 수행한 결과를, 그 다음 줄에는 BFS를 수행한 결과를 출력한다. V부터 방문된 점을 순서대로 출력하면 된다. ..

알고리즘/백준 2024.02.26