전체 글
-
[백준 1080번] 행렬 (Java 풀이)Algorithm/Greedy Algorithm 2022. 2. 18. 16:44
백준알고리즘 1080번 : 행렬 예제에서 유추할 수 있듯 3x3크기의 부분행렬을 한번에 바꾸기 때문에 그보다 작은 행렬이 문제로 나온다면 다를 경우 -1, 같을 경우 0을 출력하는 것으로 판단할 수 있다. 문제는 3x3이상의 행렬인데, 이 경우에는 부분행렬중 좌측 최상단의 값만 이용하여 비교하는 식으로했다. 좌측 상단에서 우측 하단으로 탐색하면 언제나 좌측 최상단의 값은 해당 탐색 이후로는 변경할 수 없는 값이된다. 이를 바탕으로 행렬 A와 행렬 B의 좌측 최상단의 값만 비교하고, 같으면 다음 탐색으로 pass, 다르면 최상단을 포함한 3x3크기의 부분행렬을 모두 바꾸어주는 방식으로 전개한다. 메소드를 더 다양하게 사용했더라면 코드 길이는 훨씬 줄었을 문제이다. 그래도 소요시간 자체는 오래걸리지 않았다...
-
[백준 1744번] 수 묶기 (Java 풀이)Algorithm/Greedy Algorithm 2022. 2. 18. 14:44
백준알고리즘 1744번 : 수 묶기 문제에 대한 대략적인 설명 곱하거나 더함으로써 정수 집합의 최댓값을 만들어 내는 문제이다. 처음에는 집합을 하나의 배열로 만들어 정렬한다음에 양의 정수와 그렇지 않은 정수로 구분하여 계산해주려고 했다. 그러나 그렇게 되면 배열을 어디서부터 끊어야할지 계산하는 것이 너무 복잡하여(집합의 길이가 짝수냐, 양수의 갯수가 짝수냐 등등..) 고민끝에 ArrayList로 양의 정수와 0이하의 정수를 구분하여 받아 정렬해주었다. 이렇게 되면 편한점은, 각 ArrayList들끼리만 정렬을 한뒤에 최댓값을 셈해주고, 남은 것들을 계산해주면 된다. 음의 정수는 작은 숫자들끼리 곱할수록 더 큰 정수를 만들수 있고(-11)*(-10) > (-5)*(-4), 양의 정수는 말할것도 없기 때문이..
-
[백준 1049번] 기타줄 (Java 풀이)Algorithm/Greedy Algorithm 2022. 2. 15. 20:54
백준알고리즘 1049번 : 기타줄 필요한 기타줄을 사기위해 얼마의 돈을 필요로 하냐 묻는 문제이다. 약간의 특이사항이 있다면, 가격이 최소가 되는 선에서 구매한다는 가정하에, 필요한 기타줄의 갯수 이상으로 기타줄을 구매해도 된다는 점이다. 패키지 가격과 낱개의 가격을 브랜드별로 나눌 필요는 없다. 둘 사이의 연관관계가 전혀 없기 때문이다. 따라서 패키지 가격의 최솟값과 낱개 가격의 최솟값만 구해준 뒤, 적절한 조건문을 사용하여 계산하도록 해주었다. 풀이 과정 1. 패키지 가격과 낱개의 가격을 받아 각 가격의 최솟값을 산출 2. 패키지 가격이 낱개 가격에 6을 곱한것 보다 저렴한가? 등등의 조건문을 통해 정답을 산출 소스 ▽ 더보기 import java.io.BufferedReader; import jav..
-
[백준 1715번] 카드 정렬하기 (Java 풀이)Algorithm/Greedy Algorithm 2022. 2. 14. 19:01
백준알고리즘 1715번 : 카드 정렬하기 Queue와 배열을 동시에 사용하여 풀었다. 처음에는 '받은 숫자들 중 가장 작은 두 숫자는 총 숫자의 갯수-1 만큼, 그 다음 작은 숫자는 총 숫자의 갯수-2만큼..... 제을 큰 숫자는 1만큼 더해주면 아닌가?' 라고 생각했다. [ 10, 20 ,30, 40 을 받았다고 할때 (10+20) 비교, (10+20+30) 비교, (10+20+30+40) 비교하여 정답이 (10+20)+(10+20+30)+(10+20+30+40) = 190 이 나오는 것처럼 ] 다만 이 논리에는 작은 두 숫자를 더한 값이 새로운 집합에서 최솟값이라는 보장이 없다는 것이다. 예를들어 [ 50, 60, 70, 80 ] 값을 받았다면, (50+60)을 비교한 뒤, [70+80]을 비교해야하..
-
데일 카네기 - '인간 관계론' 후기Book/자기계발 2022. 1. 9. 21:00
책의 목차를 통해 데일 카네기의 인간관계 원칙을 나열하면 다음과 같다. 1. 사람을 다루는 기본 원칙 3가지 ▶ 비난하거나 비판하거나 불평하지 마라. ▶ 진심에서 우러나오는 진실한 칭찬을 하자. ▶ 다른 사람의 마음속에 강렬히 원하는 마음을 불러일으키도록 하라. 2. 호감을 사는 방법 6가지 ▶ 다른 사람에 대해 진심어린 관심을 가져라. ▶ 미소 지어라. ▶ 사람들에게 자기 이름은 이 세상에서 가장 듣기 좋은 소리며, 중요한 소리가 된다는 사실을 기억하라. ▶ 훌륭한 경청자가 되도록 하라. 상대방이 자기 이야기를 하도록 부추기고 격려하도록 하라. ▶ 다른 사람의 관심사에 대해 대화를 나눠라 ▶ 진심으로 상대가 중요한 사람이라는 걸 느끼게 하고 인정하라 3. 설득하는 방법 12가지 ▶ 논쟁을 가장 잘 이용..
-
[Troll ost] Justin Timberlake / Anna Kendrick - True Colors [가사/해석]Music 2020. 8. 14. 16:32
Justin Timberlake / Anna Kendrick - True Colors [가사 / 해석] You with the sad eyes 슬픈 눈의 그대 Don't be discouraged, oh I realize 낙담하지 말아요, 나는 알고있어요 It's hard to take courage 복잡한 세상속에서 In a world full of people 용기를 갖는건 어려운 일이라는걸 You can lose sight of it all 모든 것을 잃을 수도 있을거예요 The darkness inside you 당신 안의 어둠이 Can make you feel so small 당신을 한 없이 초라하게 만들겠죠 Show me a smile then 불행해하지 말고 Don't be unhappy 부..
-
기욤 뮈소 - '작가들의 비밀스러운 삶' 후기Book/소설 2020. 7. 31. 16:26
주인공과의 일체화를 통해 '작가의 영감은 어디에서 오는가?'라는 물음에 답변한 기욤 뮈소 기욤 뮈소 소설의 가장 큰 특징이라 함은, 판타지와 현실의 경계를 넘나드는 묘함이라고 생각한다. '너무 적나라한 판타지 소설이 아닌가?' 혹은, '과하게 비현실적이지 않나?' 싶었던 내용들이 후반부로 전개될수록 어떤 이야기와 접점을 이루면서 현실의 경계 속으로 들어가버린다고나 할까. 예전에 읽었던 종이여자도 그런 느낌이었다. 이런 전개가 바로 독자들이 기욤 뮈소에 열광하게 되는 이유가 아닐까 한다. 나 역시 그러하다. 작가는 은연 중에 소설의 주인공 중 한명에 자신을 투영한다고 한다. 이런 캐릭터는 작가의 생각을 엿볼 수 있는 동시에 작가는 독자에게 자신의 목소리를 간접적으로 전달할 수 있는 매개체가 될 수도 있다...
-
[백준 17264번] I AM IRONMAN (Java 풀이)Algorithm/기타 2020. 3. 8. 15:35
백준알고리즘 17264번 : I AM IRONMAN 해킹을 통해 점수를 올리고자 하는 유저가 있는데, 알아낸 정보와 게임을 통해 IRON 티어에서 벗어날 수 있는지 여부를 확인하는 문제이다. 해킹을 통해 같이하면 무조건 이기거나 지는 사람의 명단, 벗어나기 위한 점수, 승리시 획득 점수, 패배시 감점 점수 와 같은 정보가 주어진다. 나는 HashMap을 이용하여 풀었다. 정보가 주어진 이름과 승패 여부를 HashMap의 Key와 Value에 집어 넣고, 조건에 맞추어, 점수를 깎거나 올려주었다. 소스 ▽ 더보기 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util..