tag:blogger.com,1999:blog-54769706971663925652024-03-13T17:11:40.080-07:00Programming is my life~! 쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.comBlogger434125tag:blogger.com,1999:blog-5476970697166392565.post-33831150278101503782021-07-12T03:00:00.002-07:002021-07-12T03:00:40.072-07:00euler686<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>euler686</title>
<link rel="stylesheet" href="https://stackedit.io/style.css" />
</head>
<body class="stackedit">
<div class="stackedit__html"><p>this is logarithm problem ~!<br>
I just multiply log10 to A= 2^n</p>
<pre class=" language-java"><code class="prism language-java"><span class="token keyword">double</span> d <span class="token operator">=</span> Math<span class="token punctuation">.</span><span class="token function">log10</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">int</span> count <span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">int</span> i<span class="token operator">=</span><span class="token number">2</span><span class="token punctuation">;</span> i<span class="token operator"><</span><span class="token number">1000000000</span><span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">double</span> value <span class="token operator">=</span> d<span class="token operator">*</span> i<span class="token punctuation">;</span>
<span class="token keyword">double</span> fp <span class="token operator">=</span> value <span class="token operator">-</span> <span class="token punctuation">(</span><span class="token keyword">int</span><span class="token punctuation">)</span> value<span class="token punctuation">;</span>
<span class="token keyword">double</span> realValue <span class="token operator">=</span> Math<span class="token punctuation">.</span><span class="token function">pow</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">,</span> fp<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">int</span> result <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token keyword">int</span><span class="token punctuation">)</span><span class="token punctuation">(</span>realValue<span class="token operator">*</span> <span class="token number">100d</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>result<span class="token operator">==</span> <span class="token number">123</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
count<span class="token operator">++</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>count <span class="token operator">==</span> <span class="token number">678910</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
System<span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">break</span><span class="token punctuation">;</span> <span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
</div>
</body>
</html>
쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com0tag:blogger.com,1999:blog-5476970697166392565.post-88477508213377397422021-02-24T00:52:00.001-08:002021-02-24T00:52:48.356-08:00장박 캠핑<p>코로나로 카페도 폐쇄되고 아이둘을 데리고 나갈만한 곳이 없다.</p><p>겨울동안 주말에만 잠깐 쉬어가는 나의 텐트 2동 설치 완료.</p><p>벌써 90일 캠핑이 끝났구나~</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg0gBlOwDapDIoi_zGHjAYhiVTNuZg9qZHSRHPZicJDJGmhCW-dGoW48bueFtge4md-_vgT8xoca-Sqousn4NWLSQeuhLzGJxdVA6ZiX_OwxFuWgUZns65ZMdxkNQ90MnSV6Eq_AGO2LE/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="1536" data-original-width="2048" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg0gBlOwDapDIoi_zGHjAYhiVTNuZg9qZHSRHPZicJDJGmhCW-dGoW48bueFtge4md-_vgT8xoca-Sqousn4NWLSQeuhLzGJxdVA6ZiX_OwxFuWgUZns65ZMdxkNQ90MnSV6Eq_AGO2LE/w640-h480/20201216_135151.jpg" width="640" /></a></div><br /><p></p>쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com0tag:blogger.com,1999:blog-5476970697166392565.post-47615596662709477372020-05-31T18:48:00.002-07:002020-05-31T18:48:54.487-07:00회계를 정통이 아닌 책으로 배우다지금 개발 하는 분야가 돈인만큼 회계 공부를 시작했다. 물론 나중에 기회가 생기면 자격증도 따고 조금더 상세하고 공부하긴 하겠지만 지금은 가볍게 책을 읽어나가면서 회계에서쓰는 단어나 조금 익숙해지는게 필요할것 같다.<br />
<br />
<br />
첫번째 보고 있는 책<br />
- 이것이 실전 회계다. ( chapter1 읽고있는데 3번정도 보고 다른책으로 넘어가야겠다. )쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com0tag:blogger.com,1999:blog-5476970697166392565.post-86014626260171700882019-11-24T20:27:00.001-08:002019-11-24T20:27:50.842-08:00clean code 1장, 2장책을 읽고 개인적으로 내용을 정리합니다.<br />
<br />
요약<br />
<br />
서문<br />
- 과거의 프로그래밍과 현재의 프로그래밍이 크게 차이점이 없다.<br />
<br />
1장<br />
- 시간이 없다고 코드 리팩토링을 나중으로 미루면 안된다.<br />
- 좋은 구조가 아니면 계속 반복해서 소프트웨어를 출시하게 되는 경우 개발자도 많이 필요하고 업무 효율도 계속 줄어듬<br />
<br />
2장<br />
- 범하기 쉬운 실수1<br />
- 중요하지도 않고, 긴급하지도 않은 것을 중요하고, 긴급함으로 격상시키는 일<br />
- 좋은 아키텍쳐를 위해 투쟁하라<br />
- 아키텍쳐를 후순위로 두지 마라<br />
- 개발하는데 더 시간이 많이 걸릴수도 있다.<br />
<br />쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com0tag:blogger.com,1999:blog-5476970697166392565.post-52430922412621645042019-11-07T17:05:00.002-08:002019-11-07T17:06:48.961-08:00요즘 읽고 있는 책 ( 미래를 바꾼 아홉 가지 알고리즘 )미래를 바꾼 아홉가지 알고리즘<br />
<br />
2년전에 한번 도서관에서 빌렸었는데 다시 빌렸다.<br />
대여기간이 11월 18일까지인데 지금 챕터 2개를 읽었음.<br />
- 오류 정정 코드<br />
- 반복 기법<br />
- redundant 기법<br />
- checkSum 기법<br />
<br />
- 데이터 압축<br />
- 비손실 압축<br />
- 여기서는 공짜 점심이라고 표현한다.<br />
- hamming code , zip등 압축전과 압축후가 동일<br />
- 손실압축<br />
- JPEG가 대표적인 예<br />
- 압축을 하고 복구를 하게 되면 전과 후가 다름<br />
<br />
<br />
<br />
18일전까지 꾸준히 읽어야 겠다.<br />
<div>
<br /></div>
쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com0tag:blogger.com,1999:blog-5476970697166392565.post-65216654520723178682019-10-16T16:45:00.002-07:002019-10-16T21:01:51.541-07:00palindrome<html>
<head>
<title>palindrome</title>
<link href="https://stackedit.io/style.css" rel="stylesheet"></link>
</head>
<body class="stackedit">
<div class="stackedit__html">
<ul>
<li>DP가 약하기도하고 공부도 하고 내용도 복습할겸 정리합니다.</li>
<li>기본에서 true 와 false말고 숫자로 표현하면 응용이 가능하다.</li>
<li>참고 링크 <a href="https://www.geeksforgeeks.org/longest-palindrome-substring-set-1/">https://www.geeksforgeeks.org/longest-palindrome-substring-set-1/</a></li>
</ul>
<h2 id="dp-문제를-푸는-나름대로의-방법">
dp 문제를 푸는 나름대로의 방법</h2>
<ul>
<li>DP 에서 row와 column에 어떤값을 정확하게 넣어야 할지가 분명하게 서지 않을때 그림을 그리는것은 도움이 된다.</li>
</ul>
<h3 id="문제">
문제</h3>
<ul>
<li>여러개의 특정 포지션에서 해당 substring이 palindrome인지 체크 하는 로직을 만드세요</li>
<li>left = 시작 지점 right = 끝 지점</li>
<li>ex) str = “abad”</li>
</ul>
<h3 id="풀이">
풀이</h3>
<ul>
<li>T = true, F = false로 간주한다.</li>
<li>table[left][right]에 대한 값을 담을 수 있는 table을 만들고 값을 채워나간다.</li>
<li>left == right 같을때는 T 로 셋팅</li>
<li>left != right
<ul>
<li>left +1 <= right-1 ( size가 3이상인 경우)
<ul>
<li>str[left] == str[right] && table[left+1][right-1] 인경우 table[left][right] T 셋팅</li>
</ul>
</li>
<li>left +1 > right-1 ( size 가 2인경우 )
<ul>
<li>str[left] == str[right] 인 경우 table[left][right] T 셋팅</li>
</ul>
</li>
</ul>
</li>
</ul>
<blockquote>
사이즈가 1인경우<br />
</blockquote>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlrEeHCZyt1mLCJ0ZDZmYFiEKMZM7tUAp0L1bIbsxzSiFiLyO3vcrk72tGZDLvOf8Wfax72Pobo8yB8ffLz5SCWTAWCqDBLyPznlaO38SAFpY-se1AjA6DepdWE9OkercVtX9R7fYDNok/s1600/pal1.png" imageanchor="1" ><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlrEeHCZyt1mLCJ0ZDZmYFiEKMZM7tUAp0L1bIbsxzSiFiLyO3vcrk72tGZDLvOf8Wfax72Pobo8yB8ffLz5SCWTAWCqDBLyPznlaO38SAFpY-se1AjA6DepdWE9OkercVtX9R7fYDNok/s1600/pal1.png" data-original-width="339" data-original-height="249" /></a>
<blockquote>
사이즈가 2이고 left = 0, right =1 인경우<br />
</blockquote>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh2bB_PjFXfKVtdcsi3sDNUnawPgxkAYa9h6MY7mWmQABcg_EquKlPsamj7Kbzp-CBQeXxIRUeGqYF11aCr5xbsp-CEP6J20dNgGNw6jSeVLQ0DGOj48apgLni05HVmW0dvvAj_AXjB7o/s1600/pal2.png" imageanchor="1" ><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh2bB_PjFXfKVtdcsi3sDNUnawPgxkAYa9h6MY7mWmQABcg_EquKlPsamj7Kbzp-CBQeXxIRUeGqYF11aCr5xbsp-CEP6J20dNgGNw6jSeVLQ0DGOj48apgLni05HVmW0dvvAj_AXjB7o/s1600/pal2.png" data-original-width="337" data-original-height="253" /></a>
<br />
<blockquote>
사이즈가 3이고 left = 0 right =2 인경우<br />
</blockquote>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLkH8M-MrncRl6kq0h0pA9Z4MoUWVliDxzG1wTEL9A7fk7xghaw7RE8fK6QbUGjV-z-PkQf5ms3_tFZlTdpwKkTQr2q5DFVLUus4mmnymPUb002qPXjXXBXKYQrdCaSozqsqjvuMrT7Cw/s1600/pal3.png" imageanchor="1" ><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLkH8M-MrncRl6kq0h0pA9Z4MoUWVliDxzG1wTEL9A7fk7xghaw7RE8fK6QbUGjV-z-PkQf5ms3_tFZlTdpwKkTQr2q5DFVLUus4mmnymPUb002qPXjXXBXKYQrdCaSozqsqjvuMrT7Cw/s1600/pal3.png" data-original-width="331" data-original-height="249" /></a>
<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmZR48R0UmRKQqRJsj2dpm3Cn-N924mjHF12j-xsYjdj9RM7K0P8WJT8nD3D7AaNMh170WI8PVfaSxM51zj1DJIhEIiLVEO1vysM4myJlTC14x5qfu34zyyVeAuVJ5Jkn6TIuHz-uMquY/s1600/pal4.png" imageanchor="1" ><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmZR48R0UmRKQqRJsj2dpm3Cn-N924mjHF12j-xsYjdj9RM7K0P8WJT8nD3D7AaNMh170WI8PVfaSxM51zj1DJIhEIiLVEO1vysM4myJlTC14x5qfu34zyyVeAuVJ5Jkn6TIuHz-uMquY/s1600/pal4.png" data-original-width="333" data-original-height="248" /></a>
<h3 id="코드">
코드</h3>
<pre class=" language-java"><code class="prism language-java">String s <span class="token operator">=</span> <span class="token string">"abac"</span><span class="token punctuation">;</span>
<span class="token keyword">boolean</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token punctuation">]</span> table <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">boolean</span><span class="token punctuation">[</span>s<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">]</span><span class="token punctuation">[</span>s<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">int</span> i<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span> i<span class="token operator"><</span>s<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
table<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">[</span>i<span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token boolean">true</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">int</span> size<span class="token operator">=</span><span class="token number">2</span><span class="token punctuation">;</span> size<span class="token operator"><</span>s<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> size<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">int</span> left<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span> left<span class="token operator"><</span>s<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> left<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">int</span> right<span class="token operator">=</span> left<span class="token operator">+</span>size<span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">;</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>right <span class="token operator">>=</span> s<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">continue</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">if</span><span class="token punctuation">(</span> size <span class="token operator">==</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
table<span class="token punctuation">[</span>left<span class="token punctuation">]</span><span class="token punctuation">[</span>right<span class="token punctuation">]</span> <span class="token operator">=</span> s<span class="token punctuation">.</span><span class="token function">charAt</span><span class="token punctuation">(</span>left<span class="token punctuation">)</span> <span class="token operator">==</span> s<span class="token punctuation">.</span><span class="token function">charAt</span><span class="token punctuation">(</span>right<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{</span>
table<span class="token punctuation">[</span>left<span class="token punctuation">]</span><span class="token punctuation">[</span>right<span class="token punctuation">]</span> <span class="token operator">=</span> s<span class="token punctuation">.</span><span class="token function">charAt</span><span class="token punctuation">(</span>left<span class="token punctuation">)</span> <span class="token operator">==</span> s<span class="token punctuation">.</span><span class="token function">charAt</span><span class="token punctuation">(</span>right<span class="token punctuation">)</span> <span class="token operator">&&</span> table<span class="token punctuation">[</span>left<span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">[</span>right<span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
</div>
</body>
</html>
쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com0tag:blogger.com,1999:blog-5476970697166392565.post-49619345685226356162019-10-14T04:38:00.000-07:002019-10-14T04:38:02.592-07:00Async Await 사용할때 3가지만 알면 모든게 해결됨1. async function은 promise 를 리턴함<br />
2. promise는 then이나 await 로 기다림<br />
3. await는 async 안에서만 사용한다.쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com0tag:blogger.com,1999:blog-5476970697166392565.post-89290247699715957492019-10-09T22:50:00.002-07:002019-10-09T22:51:22.551-07:00575. distribute candies<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>575. distribute candies</title>
<link rel="stylesheet" href="https://stackedit.io/style.css" />
</head>
<body class="stackedit">
<div class="stackedit__html"><p><a href="https://leetcode.com/problems/distribute-candies/">https://leetcode.com/problems/distribute-candies/</a></p>
<ul>
<li>
<p>처음 생각해낸 방법은<br>
두개의 priority qeue 를 생성해서 하나는 asc, 하는 desc 로 생성<br>
sister 가 asc에서 한개씩 빼고, brother가 desc에서 큰 순으로 하나씩 빼다보면 최대 개수가 나올것 같다고 생각이 들었음.</p>
</li>
<li>
<p>코딩하기 귀찮아서 다른 방법 생각해보니 유니크한 사탕의 종류의 개수에 따라서 간단히 풀수 있었음.</p>
</li>
<li>
<p>O(N)</p>
</li>
<li>
<p>종류개수 > length/2 return length/2, else 종류개수</p>
</li>
</ul>
<blockquote>
<p>Runtime: 14 ms, faster than 96.34% of Java online submissions for Distribute Candies.</p>
</blockquote>
<pre class=" language-java"><code class="prism language-java"><span class="token keyword">class</span> <span class="token class-name">Solution</span> <span class="token punctuation">{</span>
<span class="token keyword">public</span> <span class="token keyword">int</span> <span class="token function">distributeCandies</span><span class="token punctuation">(</span><span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span> candies<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">int</span> <span class="token punctuation">[</span><span class="token punctuation">]</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">int</span><span class="token punctuation">[</span><span class="token number">200001</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword">int</span> kinds <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">int</span> i<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span> i<span class="token operator"><</span>candies<span class="token punctuation">.</span>length<span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>map<span class="token punctuation">[</span>candies<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token operator">+</span><span class="token number">100000</span><span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
kinds <span class="token operator">++</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
map<span class="token punctuation">[</span>candies<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token operator">+</span><span class="token number">100000</span><span class="token punctuation">]</span><span class="token operator">++</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">int</span> maxLen <span class="token operator">=</span> candies<span class="token punctuation">.</span>length<span class="token operator">/</span><span class="token number">2</span> <span class="token punctuation">;</span>
<span class="token keyword">return</span> kinds <span class="token operator"><=</span> maxLen <span class="token operator">?</span> kinds <span class="token operator">:</span> maxLen<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
</div>
</body>
</html>
쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com0tag:blogger.com,1999:blog-5476970697166392565.post-28150803947321461172019-10-06T08:36:00.002-07:002019-10-06T08:36:53.299-07:0053. Maximum Subarray<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>53. Maximum Subarray</title>
<link rel="stylesheet" href="https://stackedit.io/style.css" />
</head>
<body class="stackedit">
<div class="stackedit__html"><p><a href="https://leetcode.com/problems/maximum-subarray/">https://leetcode.com/problems/maximum-subarray/</a></p>
<blockquote>
<p>Runtime: 1 ms, faster than 85.87% of Java online submissions for Maximum Subarray.</p>
</blockquote>
<h3 id="on-코드">O(N) 코드</h3>
<pre class=" language-java"><code class="prism language-java"><span class="token keyword">class</span> <span class="token class-name">Solution</span> <span class="token punctuation">{</span>
<span class="token keyword">public</span> <span class="token keyword">int</span> <span class="token function">maxSubArray</span><span class="token punctuation">(</span><span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span> nums<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">int</span> max <span class="token operator">=</span> nums<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword">int</span> pre <span class="token operator">=</span> nums<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">int</span> i<span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span> i<span class="token operator"><</span>nums<span class="token punctuation">.</span>length<span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>pre <span class="token operator">></span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
pre <span class="token operator">+=</span> nums<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">;</span>
max <span class="token operator">=</span> Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span>pre<span class="token punctuation">,</span> max<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{</span>
pre <span class="token operator">=</span> nums<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">;</span>
max <span class="token operator">=</span> Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span>pre<span class="token punctuation">,</span> max<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> max<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<h4 id="divide-and-conquer">Divide and Conquer</h4>
<blockquote>
<p>2ms</p>
</blockquote>
<ul>
<li>ide 사용하고 debugging하는데 시간이 오래 걸림</li>
<li>2개또는 1개로 자른다.</li>
<li>데이터를 머지할때 3가지 데이터를 구한다
<ul>
<li>leftMost = 왼쪽 0번째 인덱스 부터 시작해서 가장 큰 sum을 구한다.</li>
<li>rightMost = 오른쪽 0번째 인덱스부터 왼쪽으로 가장 큰 sum을 구한다.</li>
<li>full 은 머지한전체 sum, leftMost와 rightMost를 구하기 위해서 필요함.</li>
</ul>
</li>
</ul>
<pre class=" language-java"><code class="prism language-java"><span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Solution</span> <span class="token punctuation">{</span>
<span class="token keyword">int</span> max <span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span> nums <span class="token punctuation">;</span>
<span class="token keyword">public</span> <span class="token keyword">int</span> <span class="token function">maxSubArray</span><span class="token punctuation">(</span><span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span> nums<span class="token punctuation">)</span> <span class="token punctuation">{</span>
max <span class="token operator">=</span> nums<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword">this</span><span class="token punctuation">.</span>nums <span class="token operator">=</span> nums<span class="token punctuation">;</span>
<span class="token function">divideAndConquer</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> nums<span class="token punctuation">.</span>length<span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> max<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">public</span> Data <span class="token function">divideAndConquer</span><span class="token punctuation">(</span><span class="token keyword">int</span> start<span class="token punctuation">,</span> <span class="token keyword">int</span> end<span class="token punctuation">)</span><span class="token punctuation">{</span>
Data data <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Data</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>start <span class="token operator">==</span> end<span class="token punctuation">)</span><span class="token punctuation">{</span>
data<span class="token punctuation">.</span>full <span class="token operator">=</span> nums<span class="token punctuation">[</span>start<span class="token punctuation">]</span><span class="token punctuation">;</span>
data<span class="token punctuation">.</span>leftMost <span class="token operator">=</span> nums<span class="token punctuation">[</span>start<span class="token punctuation">]</span><span class="token punctuation">;</span>
data<span class="token punctuation">.</span>rightMost <span class="token operator">=</span> nums<span class="token punctuation">[</span>start<span class="token punctuation">]</span><span class="token punctuation">;</span>
max <span class="token operator">=</span> Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span>max <span class="token punctuation">,</span>data<span class="token punctuation">.</span>full<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> data<span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token keyword">else</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>start <span class="token operator">==</span> end<span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
data<span class="token punctuation">.</span>full <span class="token operator">=</span> nums<span class="token punctuation">[</span>start<span class="token punctuation">]</span> <span class="token operator">+</span> nums<span class="token punctuation">[</span>end<span class="token punctuation">]</span><span class="token punctuation">;</span>
data<span class="token punctuation">.</span>leftMost <span class="token operator">=</span> Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span>nums<span class="token punctuation">[</span>start<span class="token punctuation">]</span><span class="token punctuation">,</span> nums<span class="token punctuation">[</span>start<span class="token punctuation">]</span> <span class="token operator">+</span> nums<span class="token punctuation">[</span>end<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
data<span class="token punctuation">.</span>rightMost <span class="token operator">=</span> Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span>nums<span class="token punctuation">[</span>end<span class="token punctuation">]</span><span class="token punctuation">,</span> nums<span class="token punctuation">[</span>start<span class="token punctuation">]</span> <span class="token operator">+</span> nums<span class="token punctuation">[</span>end<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
max <span class="token operator">=</span> Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span>max <span class="token punctuation">,</span>data<span class="token punctuation">.</span>leftMost<span class="token punctuation">)</span><span class="token punctuation">;</span>
max <span class="token operator">=</span> Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span>max <span class="token punctuation">,</span>data<span class="token punctuation">.</span>rightMost<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> data<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">int</span> mid <span class="token operator">=</span> <span class="token punctuation">(</span>end<span class="token operator">-</span>start<span class="token punctuation">)</span><span class="token operator">/</span><span class="token number">2</span> <span class="token operator">+</span> start<span class="token punctuation">;</span>
<span class="token comment">// left</span>
Data left <span class="token operator">=</span> <span class="token function">divideAndConquer</span><span class="token punctuation">(</span>start<span class="token punctuation">,</span> mid<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// right</span>
Data right <span class="token operator">=</span> <span class="token function">divideAndConquer</span><span class="token punctuation">(</span>mid<span class="token operator">+</span><span class="token number">1</span> <span class="token punctuation">,</span>end<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>left<span class="token punctuation">.</span>rightMost <span class="token operator">></span><span class="token number">0</span> <span class="token operator">||</span> right<span class="token punctuation">.</span>leftMost <span class="token operator">></span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
max <span class="token operator">=</span> Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span><span class="token punctuation">(</span>Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span>left<span class="token punctuation">.</span>rightMost<span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token operator">+</span> Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span>right<span class="token punctuation">.</span>leftMost<span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">,</span> max<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
data<span class="token punctuation">.</span>leftMost <span class="token operator">=</span> Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span>left<span class="token punctuation">.</span>leftMost<span class="token punctuation">,</span> left<span class="token punctuation">.</span>full <span class="token operator">+</span> right<span class="token punctuation">.</span>leftMost<span class="token punctuation">)</span><span class="token punctuation">;</span>
data<span class="token punctuation">.</span>rightMost <span class="token operator">=</span> Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span>right<span class="token punctuation">.</span>rightMost<span class="token punctuation">,</span> right<span class="token punctuation">.</span>full <span class="token operator">+</span> left<span class="token punctuation">.</span>rightMost<span class="token punctuation">)</span><span class="token punctuation">;</span>
data<span class="token punctuation">.</span>full <span class="token operator">=</span> right<span class="token punctuation">.</span>full <span class="token operator">+</span> left<span class="token punctuation">.</span>full<span class="token punctuation">;</span>
max <span class="token operator">=</span> Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span>max<span class="token punctuation">,</span> data<span class="token punctuation">.</span>leftMost<span class="token punctuation">)</span><span class="token punctuation">;</span>
max <span class="token operator">=</span> Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span>max<span class="token punctuation">,</span> data<span class="token punctuation">.</span>rightMost<span class="token punctuation">)</span><span class="token punctuation">;</span>
max <span class="token operator">=</span> Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span>max<span class="token punctuation">,</span> data<span class="token punctuation">.</span>full<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> data<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">class</span> <span class="token class-name">Data</span> <span class="token punctuation">{</span>
<span class="token keyword">int</span> leftMost<span class="token punctuation">;</span>
<span class="token keyword">int</span> full<span class="token punctuation">;</span>
<span class="token keyword">int</span> rightMost<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre>
</div>
</body>
</html>
쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com0tag:blogger.com,1999:blog-5476970697166392565.post-88184058340033751592019-10-01T00:38:00.002-07:002019-10-01T00:39:03.715-07:001009. Complement of Base 10 Integer<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>1009. Complement of Base 10 Integer</title>
<link rel="stylesheet" href="https://stackedit.io/style.css" />
</head>
<body class="stackedit">
<div class="stackedit__html"><p><a href="https://leetcode.com/problems/complement-of-base-10-integer/">https://leetcode.com/problems/complement-of-base-10-integer/</a></p>
<p>첫번째 방법</p>
<ul>
<li>2 로 나누기 비트연산하면서 0 to 1 , 1 to 0으로 변경한 비트 값을 더해줌<br>
2번째 방법</li>
<li>digit을 구한후 해당 xor 연산으로 한번에 풀었음</li>
</ul>
<pre><code>Runtime: 0 ms, faster than 100.00% of Java online submissions for Complement of Base 10 Integer.
</code></pre>
<pre class=" language-java"><code class="prism language-java"><span class="token keyword">class</span> <span class="token class-name">Solution</span> <span class="token punctuation">{</span>
<span class="token keyword">public</span> <span class="token keyword">int</span> <span class="token function">bitwiseComplement</span><span class="token punctuation">(</span><span class="token keyword">int</span> N<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>N<span class="token operator">==</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">return</span> <span class="token number">1</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">int</span> digit <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword">int</span> sum <span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword">while</span> <span class="token punctuation">(</span>N<span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">int</span> remainder <span class="token operator">=</span> N <span class="token operator">%</span> <span class="token number">2</span> <span class="token punctuation">;</span>
N <span class="token operator">=</span> N<span class="token operator">>></span><span class="token number">1</span><span class="token punctuation">;</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>remainder <span class="token operator">==</span> <span class="token number">0</span> <span class="token punctuation">)</span><span class="token punctuation">{</span>
sum <span class="token operator">+=</span> <span class="token number">1</span><span class="token operator"><<</span> digit<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
digit<span class="token operator">++</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> sum<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<h3 id="두번째-코드">두번째 코드</h3>
<pre class=" language-java"><code class="prism language-java"><span class="token keyword">class</span> <span class="token class-name">Solution</span> <span class="token punctuation">{</span>
<span class="token keyword">public</span> <span class="token keyword">int</span> <span class="token function">bitwiseComplement</span><span class="token punctuation">(</span><span class="token keyword">int</span> N<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">int</span> digit <span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span>
<span class="token keyword">int</span> n <span class="token operator">=</span> N<span class="token punctuation">;</span>
<span class="token keyword">while</span><span class="token punctuation">(</span><span class="token punctuation">(</span>n<span class="token operator">=</span> n <span class="token operator">>></span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
digit<span class="token operator">++</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">int</span> compare <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token number">2</span> <span class="token operator"><<</span> digit<span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)</span> <span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> N<span class="token operator">^</span>compare<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
</div>
</body>
</html>
쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com0tag:blogger.com,1999:blog-5476970697166392565.post-26698737439456864902019-09-26T22:57:00.002-07:002019-09-26T22:58:10.674-07:00java shift 연산<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>java shift 연산</title>
<link rel="stylesheet" href="https://stackedit.io/style.css" />
</head>
<body class="stackedit">
<div class="stackedit__html"><h1 id="shift-연산">Shift 연산</h1>
<ul>
<li>bit 연산은</li>
<li>16진수? int를 표현하는 방법</li>
<li>아래 예제는 전부다 16을 출력</li>
</ul>
<pre class=" language-java"><code class="prism language-java"> <span class="token keyword">int</span> a <span class="token operator">=</span> <span class="token number">0x010</span><span class="token punctuation">;</span>
System<span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>a<span class="token punctuation">)</span><span class="token punctuation">;</span>
a <span class="token operator">=</span> <span class="token number">0x0010</span><span class="token punctuation">;</span>
System<span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>a<span class="token punctuation">)</span><span class="token punctuation">;</span>
a <span class="token operator">=</span> <span class="token number">0x0000010</span><span class="token punctuation">;</span>
System<span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>a<span class="token punctuation">)</span><span class="token punctuation">;</span>
a <span class="token operator">=</span> <span class="token number">0x000000000000000000000000000000000000000010</span><span class="token punctuation">;</span>
System<span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>a<span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<ul>
<li>16진수를 표현하는 방법?
<ul>
<li>0x에 0 to f 까지 표현할수 있다. (0 -15)</li>
</ul>
</li>
</ul>
<h2 id="number---number-연산자"><< number , >> number 연산자</h2>
<ul>
<li>비트값을 왼쪽으로 number만큼 움직여준다.</li>
</ul>
<pre class=" language-java"><code class="prism language-java"><span class="token keyword">int</span> a <span class="token operator">=</span> <span class="token number">8</span><span class="token punctuation">;</span>
System<span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>Integer<span class="token punctuation">.</span><span class="token function">toBinaryString</span><span class="token punctuation">(</span>a<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// 001000</span>
a <span class="token operator">=</span> a <span class="token operator"><<</span> <span class="token number">2</span><span class="token punctuation">;</span>
System<span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>Integer<span class="token punctuation">.</span><span class="token function">toBinaryString</span><span class="token punctuation">(</span>a<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// 100000</span>
a <span class="token operator">=</span> a <span class="token operator">>></span> <span class="token number">2</span><span class="token punctuation">;</span>
System<span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>Integer<span class="token punctuation">.</span><span class="token function">toBinaryString</span><span class="token punctuation">(</span>a<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// 001000</span>
</code></pre>
<ul>
<li>1을 오른쪽으로 비트 연산하게 되는경우 어떻게 나올까??</li>
</ul>
<pre class=" language-java"><code class="prism language-java"><span class="token keyword">int</span> a <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span>
System<span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>Integer<span class="token punctuation">.</span><span class="token function">toBinaryString</span><span class="token punctuation">(</span>a<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// 00001</span>
a <span class="token operator">=</span> a <span class="token operator">>></span> <span class="token number">5</span><span class="token punctuation">;</span>
System<span class="token punctuation">.</span>out<span class="token punctuation">.</span><span class="token function">println</span><span class="token punctuation">(</span>Integer<span class="token punctuation">.</span><span class="token function">toBinaryString</span><span class="token punctuation">(</span>a<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// 0</span>
</code></pre>
<ul>
<li>으로나온다.</li>
</ul>
</div>
</body>
</html>
쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com0tag:blogger.com,1999:blog-5476970697166392565.post-25126101285536357182019-09-19T22:06:00.001-07:002019-09-26T22:58:24.826-07:001029. Two City Scheduling<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>1029. Two City Scheduling</title>
<link rel="stylesheet" href="https://stackedit.io/style.css" />
</head>
<body class="stackedit">
<div class="stackedit__html"><p><a href="https://leetcode.com/problems/two-city-scheduling/">https://leetcode.com/problems/two-city-scheduling/</a></p>
<ul>
<li>a와 b의 갭을 구한다.</li>
<li>위의 갭이 큰 값으로 descending 정렬한다.</li>
<li>갭순으로 정렬된것중에 중에 작은 값 기준으로 이렇게 정렬되어있다면
<ul>
<li>a b a a a b</li>
<li>a b a a b b 이렇게 분류해서 더한다. 왜냐하면 반틈씩 인터뷰를 진행해야한다고 나와있어서</li>
</ul>
</li>
<li>위내용을 코딩화 하니깐 생각보다 복잡해졌음</li>
</ul>
<pre><code>Runtime: 2 ms
Memory Usage: 38.5 MB
</code></pre>
<pre class=" language-java"><code class="prism language-java"><span class="token keyword">class</span> <span class="token class-name">Solution</span> <span class="token punctuation">{</span>
<span class="token keyword">public</span> <span class="token keyword">int</span> <span class="token function">twoCitySchedCost</span><span class="token punctuation">(</span><span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token punctuation">]</span> costs<span class="token punctuation">)</span> <span class="token punctuation">{</span>
List<span class="token operator"><</span>Schedule<span class="token operator">></span> list <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ArrayList</span><span class="token operator"><</span>Schedule<span class="token operator">></span> <span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">for</span><span class="token punctuation">(</span> <span class="token keyword">int</span> i<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span> i<span class="token operator"><</span>costs<span class="token punctuation">.</span>length<span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
list<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">Schedule</span><span class="token punctuation">(</span>costs<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">,</span> costs<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">,</span> Math<span class="token punctuation">.</span><span class="token function">abs</span><span class="token punctuation">(</span>costs<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token operator">-</span> costs<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
Collections<span class="token punctuation">.</span><span class="token function">sort</span><span class="token punctuation">(</span>list<span class="token punctuation">,</span> <span class="token keyword">new</span> <span class="token class-name">Comparator</span><span class="token operator"><</span>Schedule<span class="token operator">></span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token annotation punctuation">@Override</span>
<span class="token keyword">public</span> <span class="token keyword">int</span> <span class="token function">compare</span><span class="token punctuation">(</span>Schedule o1<span class="token punctuation">,</span> Schedule o2<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> o2<span class="token punctuation">.</span>gap <span class="token operator">-</span> o1<span class="token punctuation">.</span>gap<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">int</span> len <span class="token operator">=</span> costs<span class="token punctuation">.</span>length<span class="token operator">/</span><span class="token number">2</span><span class="token punctuation">;</span>
<span class="token keyword">int</span> acount <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword">int</span> bcount <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword">int</span> index <span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword">int</span> minsum <span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword">while</span><span class="token punctuation">(</span>acount<span class="token operator"><</span>len <span class="token operator">&&</span> bcount <span class="token operator"><</span>len<span class="token punctuation">)</span><span class="token punctuation">{</span>
Schedule schedule <span class="token operator">=</span> list<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>index<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>schedule<span class="token punctuation">.</span>a<span class="token operator"><</span> schedule<span class="token punctuation">.</span>b<span class="token punctuation">)</span><span class="token punctuation">{</span>
acount<span class="token operator">++</span><span class="token punctuation">;</span>
minsum<span class="token operator">+=</span> schedule<span class="token punctuation">.</span>a<span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{</span>
bcount<span class="token operator">++</span><span class="token punctuation">;</span>
minsum<span class="token operator">+=</span> schedule<span class="token punctuation">.</span>b<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>acount <span class="token operator">!=</span> len<span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">int</span> i<span class="token operator">=</span>index<span class="token punctuation">;</span> i<span class="token operator"><</span>list<span class="token punctuation">.</span><span class="token function">size</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> i<span class="token operator">++</span> <span class="token punctuation">)</span><span class="token punctuation">{</span>
minsum <span class="token operator">+=</span> list<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span>a<span class="token punctuation">;</span>
acount<span class="token operator">++</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>bcount <span class="token operator">!=</span> len<span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">int</span> i<span class="token operator">=</span>index<span class="token punctuation">;</span> i<span class="token operator"><</span>list<span class="token punctuation">.</span><span class="token function">size</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> i<span class="token operator">++</span> <span class="token punctuation">)</span><span class="token punctuation">{</span>
minsum <span class="token operator">+=</span> list<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span>b<span class="token punctuation">;</span>
bcount<span class="token operator">++</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> minsum<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">class</span> <span class="token class-name">Schedule</span> <span class="token punctuation">{</span>
<span class="token keyword">int</span> a<span class="token punctuation">;</span>
<span class="token keyword">int</span> b<span class="token punctuation">;</span>
<span class="token keyword">int</span> gap<span class="token punctuation">;</span>
<span class="token function">Schedule</span><span class="token punctuation">(</span><span class="token keyword">int</span> a<span class="token punctuation">,</span> <span class="token keyword">int</span> b<span class="token punctuation">,</span> <span class="token keyword">int</span> gap<span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">this</span><span class="token punctuation">.</span>a <span class="token operator">=</span> a<span class="token punctuation">;</span>
<span class="token keyword">this</span><span class="token punctuation">.</span>b <span class="token operator">=</span> b<span class="token punctuation">;</span>
<span class="token keyword">this</span><span class="token punctuation">.</span>gap <span class="token operator">=</span> gap<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<h2 id="두번째-코드">두번째 코드</h2>
<ul>
<li>위의 로직을 조금더 깔끔하게 하는 방법</li>
<li>solution을 보니깐 compare 하는부분에서 조금더 잘 정렬하던데 머리로 한 70% 이해했음. 코드 짜라고 하면 어려움</li>
<li>다음에 한번더 보면 좋을것 같은 문제</li>
</ul>
<pre class=" language-java"><code class="prism language-java"><span class="token keyword">public</span> <span class="token keyword">int</span> <span class="token function">twoCitySchedCost</span><span class="token punctuation">(</span><span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token punctuation">]</span> costs<span class="token punctuation">)</span> <span class="token punctuation">{</span>
Arrays<span class="token punctuation">.</span><span class="token function">sort</span><span class="token punctuation">(</span>costs<span class="token punctuation">,</span> <span class="token keyword">new</span> <span class="token class-name">Comparator</span><span class="token operator"><</span><span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token operator">></span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token annotation punctuation">@Override</span>
<span class="token keyword">public</span> <span class="token keyword">int</span> <span class="token function">compare</span><span class="token punctuation">(</span><span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span> o1<span class="token punctuation">,</span> <span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span> o2<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">return</span> Math<span class="token punctuation">.</span><span class="token function">abs</span><span class="token punctuation">(</span>o2<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token operator">-</span> o2<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token operator">-</span> Math<span class="token punctuation">.</span><span class="token function">abs</span><span class="token punctuation">(</span>o1<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token operator">-</span> o1<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">int</span> len <span class="token operator">=</span> costs<span class="token punctuation">.</span>length<span class="token operator">/</span><span class="token number">2</span><span class="token punctuation">;</span>
<span class="token keyword">int</span> acount <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> <span class="token keyword">int</span> bcount <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> <span class="token keyword">int</span> index <span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span> <span class="token keyword">int</span> minsum <span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword">while</span><span class="token punctuation">(</span>acount<span class="token operator"><</span>len <span class="token operator">&&</span> bcount <span class="token operator"><</span>len<span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span> schedule <span class="token operator">=</span> costs<span class="token punctuation">[</span>index<span class="token operator">++</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>schedule<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token operator"><</span> schedule<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
acount<span class="token operator">++</span><span class="token punctuation">;</span>
minsum<span class="token operator">+=</span> schedule<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{</span>
bcount<span class="token operator">++</span><span class="token punctuation">;</span>
minsum<span class="token operator">+=</span> schedule<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">int</span> i<span class="token operator">=</span>index<span class="token punctuation">;</span> i<span class="token operator"><</span>costs<span class="token punctuation">.</span>length<span class="token punctuation">;</span> i<span class="token operator">++</span> <span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>bcount <span class="token operator">!=</span> len<span class="token punctuation">)</span><span class="token punctuation">{</span>
minsum <span class="token operator">+=</span> costs<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
bcount<span class="token operator">++</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{</span>
minsum <span class="token operator">+=</span> costs<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
acount<span class="token operator">++</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> minsum<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre>
</div>
</body>
</html>
쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com0tag:blogger.com,1999:blog-5476970697166392565.post-78120392793302441132019-09-15T22:25:00.002-07:002019-09-16T15:48:59.329-07:00459. repeated-substring-pattern<html>
<head>
<title>459. repeated-substring-pattern</title>
<link href="https://stackedit.io/style.css" rel="stylesheet"></link>
</head>
<body class="stackedit">
<div class="stackedit__html">
<ul>
<li>
<h2 id="httpsleetcode.comproblemsrepeated-substring-pattern">
<a href="https://leetcode.com/problems/repeated-substring-pattern/">https://leetcode.com/problems/repeated-substring-pattern/</a></h2>
</li>
<li>
문제 난이도는 easy 이지만 생각도 힘들었고 생각을 코드로 구현도 힘들었음.<br />
</li>
<li>
파티션으로 나누어서 모든게 일치하면 통과하는식으로 구현<br />
</li>
<li>
아래 그림으로 로직 표현<br />
</li>
</ul>
<pre><code>Runtime: 15 ms, faster than 71.70% of Java online submissions for Repeated Substring Pattern.
Memory Usage: 36.5 MB, less than 100.00% of Java online submissions for Repeated Substring Pattern.
</code></pre>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDYJlRjzw4abqHJ0EMuLpaMbx0Y9asyYhAArtGjrwWEJ2Aa-nYQcAhTqdK2S0EMBIhsCbRgLrbwDI8JTMsOaWIARVKuALJGmNzLMAmqEX3G1Tg4D_qvZ9s-vHZdDlBBBBoVkCG2IhyphenhyphenibM/s1600/repeated.png" imageanchor="1" ><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDYJlRjzw4abqHJ0EMuLpaMbx0Y9asyYhAArtGjrwWEJ2Aa-nYQcAhTqdK2S0EMBIhsCbRgLrbwDI8JTMsOaWIARVKuALJGmNzLMAmqEX3G1Tg4D_qvZ9s-vHZdDlBBBBoVkCG2IhyphenhyphenibM/s640/repeated.png" width="640" height="323" data-original-width="990" data-original-height="500" /></a>
<pre class=" language-java"><code class="prism language-java"><span class="token keyword">class</span> <span class="token class-name">Solution</span> <span class="token punctuation">{</span>
<span class="token keyword">public</span> <span class="token keyword">boolean</span> <span class="token function">repeatedSubstringPattern</span><span class="token punctuation">(</span>String s<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token comment">//abcabcabcabc</span>
<span class="token keyword">char</span> <span class="token punctuation">[</span><span class="token punctuation">]</span> arr <span class="token operator">=</span> s<span class="token punctuation">.</span><span class="token function">toCharArray</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// distance</span>
<span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">int</span> i<span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span> i<span class="token operator"><=</span>arr<span class="token punctuation">.</span>length<span class="token operator">/</span><span class="token number">2</span><span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>arr<span class="token punctuation">.</span>length <span class="token operator">%</span> i <span class="token operator">!=</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">continue</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">boolean</span> allSame <span class="token operator">=</span> <span class="token boolean">true</span><span class="token punctuation">;</span>
<span class="token comment">// 각 파티션</span>
second <span class="token operator">:</span>
<span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">int</span> j<span class="token operator">=</span>i<span class="token punctuation">;</span> j<span class="token operator"><</span>arr<span class="token punctuation">.</span>length<span class="token punctuation">;</span> j<span class="token operator">+=</span>i<span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token comment">// 파티션의 distacne 까지 비교</span>
<span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">int</span> k<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span> k<span class="token operator"><</span>i<span class="token punctuation">;</span> k<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>arr<span class="token punctuation">[</span>k<span class="token punctuation">]</span> <span class="token operator">!=</span> arr<span class="token punctuation">[</span>j<span class="token operator">+</span>k<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
allSame <span class="token operator">=</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
<span class="token keyword">break</span> second<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>allSame<span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">return</span> <span class="token boolean">true</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
</div>
</body>
</html>
쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com0tag:blogger.com,1999:blog-5476970697166392565.post-55813840600279347442019-09-15T22:19:00.002-07:002019-09-15T22:20:10.832-07:0083. remove-duplicated-from-sorted<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>83. remove-duplicated-from-sorted</title>
<link rel="stylesheet" href="https://stackedit.io/style.css" />
</head>
<body class="stackedit">
<div class="stackedit__html"><ul>
<li>
<p><a href="https://leetcode.com/problems/remove-duplicates-from-sorted-list/">https://leetcode.com/problems/remove-duplicates-from-sorted-list/</a></p>
</li>
<li>
<p>head.val 과 head.next.val 을 비교해서 같으면 head.next.next를 head.next에 연결해준다.</p>
</li>
</ul>
<pre><code>Runtime: 0 ms, faster than 100.00% of Java online submissions for Remove Duplicates from Sorted List.
Memory Usage: 36.2 MB, less than 100.00% of Java online submissions for Remove Duplicates from Sorted List.
</code></pre>
<pre class=" language-java"><code class="prism language-java"><span class="token keyword">class</span> <span class="token class-name">Solution</span> <span class="token punctuation">{</span>
<span class="token keyword">public</span> ListNode <span class="token function">deleteDuplicates</span><span class="token punctuation">(</span>ListNode head<span class="token punctuation">)</span> <span class="token punctuation">{</span>
ListNode mockHead <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ListNode</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
mockHead<span class="token punctuation">.</span>next <span class="token operator">=</span> head<span class="token punctuation">;</span>
<span class="token keyword">while</span><span class="token punctuation">(</span>head <span class="token operator">!=</span> null <span class="token operator">&&</span> head<span class="token punctuation">.</span>next <span class="token operator">!=</span> null<span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>head<span class="token punctuation">.</span>val <span class="token operator">==</span> head<span class="token punctuation">.</span>next<span class="token punctuation">.</span>val<span class="token punctuation">)</span><span class="token punctuation">{</span>
head<span class="token punctuation">.</span>next <span class="token operator">=</span> head<span class="token punctuation">.</span>next<span class="token punctuation">.</span>next<span class="token punctuation">;</span>
<span class="token keyword">continue</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
head <span class="token operator">=</span> head<span class="token punctuation">.</span>next<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> mockHead<span class="token punctuation">.</span>next<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
</div>
</body>
</html>
쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com0tag:blogger.com,1999:blog-5476970697166392565.post-36481632428398361502019-09-15T22:18:00.002-07:002019-09-15T22:20:10.808-07:00695. max-area-of-island<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>695. max-area-of-island</title>
<link rel="stylesheet" href="https://stackedit.io/style.css" />
</head>
<body class="stackedit">
<div class="stackedit__html"><ul>
<li>방문한 곳은 1 to 2로 치환하고 연결된 모든 섬의 count를 구해서 max sum을 구한다.</li>
</ul>
<pre><code>Runtime: 2 ms, faster than 100.00% of Java online submissions for Max Area of Island.
Memory Usage: 43.6 MB, less than 55.56% of Java online submissions for Max Area of Island.
</code></pre>
<pre class=" language-java"><code class="prism language-java"><span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Solution</span> <span class="token punctuation">{</span>
<span class="token keyword">int</span> maxSum <span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword">public</span> <span class="token keyword">int</span> <span class="token function">maxAreaOfIsland</span><span class="token punctuation">(</span><span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token punctuation">]</span> grid<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>grid<span class="token punctuation">.</span>length <span class="token operator">==</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">return</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">int</span> i<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span> i<span class="token operator"><</span>grid<span class="token punctuation">.</span>length<span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">int</span> j<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span> j<span class="token operator"><</span>grid<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span>length<span class="token punctuation">;</span> j<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>grid<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">[</span>j<span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">int</span> sum <span class="token operator">=</span> <span class="token function">visit</span><span class="token punctuation">(</span>i<span class="token punctuation">,</span> j<span class="token punctuation">,</span> grid<span class="token punctuation">)</span><span class="token punctuation">;</span>
maxSum <span class="token operator">=</span> Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span>maxSum<span class="token punctuation">,</span> sum<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> maxSum<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">private</span> <span class="token keyword">int</span> <span class="token function">visit</span><span class="token punctuation">(</span><span class="token keyword">int</span> i<span class="token punctuation">,</span> <span class="token keyword">int</span> j<span class="token punctuation">,</span> <span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token punctuation">]</span> grid<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">int</span> sum<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>i <span class="token operator">>=</span><span class="token number">0</span> <span class="token operator">&&</span> i<span class="token operator"><</span>grid<span class="token punctuation">.</span>length <span class="token operator">&&</span> j<span class="token operator">>=</span><span class="token number">0</span> <span class="token operator">&&</span> j<span class="token operator"><</span>grid<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">.</span>length<span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>grid<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">[</span>j<span class="token punctuation">]</span> <span class="token operator">==</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
sum<span class="token operator">++</span><span class="token punctuation">;</span>
grid<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">[</span>j<span class="token punctuation">]</span> <span class="token operator">=</span><span class="token number">2</span><span class="token punctuation">;</span>
sum<span class="token operator">+=</span><span class="token function">visit</span><span class="token punctuation">(</span>i<span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">,</span> j<span class="token punctuation">,</span> grid<span class="token punctuation">)</span><span class="token punctuation">;</span>
sum<span class="token operator">+=</span><span class="token function">visit</span><span class="token punctuation">(</span>i<span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">,</span> j<span class="token punctuation">,</span> grid<span class="token punctuation">)</span><span class="token punctuation">;</span>
sum<span class="token operator">+=</span><span class="token function">visit</span><span class="token punctuation">(</span>i<span class="token punctuation">,</span> j<span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">,</span> grid<span class="token punctuation">)</span><span class="token punctuation">;</span>
sum<span class="token operator">+=</span><span class="token function">visit</span><span class="token punctuation">(</span>i<span class="token punctuation">,</span> j<span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">,</span> grid<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> sum<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
</div>
</body>
</html>
쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com0tag:blogger.com,1999:blog-5476970697166392565.post-66396350589701172172019-09-09T16:16:00.002-07:002019-09-09T16:17:05.416-07:00342. power of four<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>342. power of four</title>
<link rel="stylesheet" href="https://stackedit.io/style.css" />
</head>
<body class="stackedit">
<div class="stackedit__html"><p><a href="https://leetcode.com/problems/power-of-four/">https://leetcode.com/problems/power-of-four/</a></p>
<h2 id="해결과정">해결과정</h2>
<p>10진수 to 2진수</p>
<ul>
<li>4 -> 100</li>
<li>16 -> 10000</li>
<li>64 -> 1000000</li>
</ul>
<pre><code>Runtime: 7 ms, faster than 5.74% of Java online submissions for Power of Four.
Memory Usage: 34.3 MB, less than 6.67% of Java online submissions for Power of Four.
</code></pre>
<pre class=" language-java"><code class="prism language-java"><span class="token keyword">public</span> <span class="token keyword">boolean</span> <span class="token function">isPowerOfFour</span><span class="token punctuation">(</span><span class="token keyword">int</span> num<span class="token punctuation">)</span> <span class="token punctuation">{</span>
String binarySring <span class="token operator">=</span> Integer<span class="token punctuation">.</span><span class="token function">toBinaryString</span><span class="token punctuation">(</span>num<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>binarySring<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">>=</span><span class="token number">3</span> <span class="token operator">&&</span> <span class="token punctuation">(</span>binarySring<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token operator">%</span><span class="token number">2</span> <span class="token operator">==</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">return</span> <span class="token string">"1"</span><span class="token punctuation">.</span><span class="token function">equals</span><span class="token punctuation">(</span>binarySring<span class="token punctuation">.</span><span class="token function">replaceAll</span><span class="token punctuation">(</span><span class="token string">"0"</span><span class="token punctuation">,</span> <span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre>
<h3 id="second-soluton">second soluton</h3>
<pre><code>민수님 numberOfTrailingZero꺼랑 And 논리 연산자를 이용함.
100
011 의 and 0
</code></pre>
<pre class=" language-java"><code class="prism language-java"><span class="token keyword">class</span> <span class="token class-name">Solution</span> <span class="token punctuation">{</span>
<span class="token keyword">public</span> <span class="token keyword">boolean</span> <span class="token function">isPowerOfFour</span><span class="token punctuation">(</span><span class="token keyword">int</span> num<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>num<span class="token operator">==</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token keyword">return</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> Integer<span class="token punctuation">.</span><span class="token function">numberOfTrailingZeros</span><span class="token punctuation">(</span>num<span class="token punctuation">)</span> <span class="token operator">%</span> <span class="token number">2</span><span class="token operator">==</span><span class="token number">0</span> <span class="token operator">&&</span> <span class="token punctuation">(</span><span class="token punctuation">(</span>num <span class="token operator">&</span> num<span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)</span> <span class="token operator">==</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
</div>
</body>
</html>
쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com0tag:blogger.com,1999:blog-5476970697166392565.post-54034099011097774412019-09-03T08:16:00.002-07:002019-09-03T08:17:15.489-07:00979. Distribute Coins in Binary Tree<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>979. Distribute Coins in Binary Tree</title>
<link rel="stylesheet" href="https://stackedit.io/style.css" />
</head>
<body class="stackedit">
<div class="stackedit__html"><p><a href="https://leetcode.com/problems/distribute-coins-in-binary-tree/">https://leetcode.com/problems/distribute-coins-in-binary-tree/</a></p>
<ul>
<li>
<p>이문제는 풀이는 조금더 생각을 해서 코딩 라인수를 줄여야할필요가 있음</p>
</li>
<li>
<p>실제 코인의 이동이 아니라 코인이 없더라도 음수대로 값을 채움 ( 있는것처럼 가상의 코인을 움직인다 )</p>
</li>
<li>
<p>data를 채우는것은 inorder 순서로 적용</p>
</li>
</ul>
<pre><code>Runtime: 1 ms, faster than 87.01% of Java online submissions for Distribute Coins in Binary Tree.
Memory Usage: 37.7 MB, less than 100.00% of Java online submissions for Distribute Coins in Binary Tree.
</code></pre>
<pre class=" language-java"><code class="prism language-java"><span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Solution</span> <span class="token punctuation">{</span>
<span class="token keyword">int</span> count <span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword">public</span> <span class="token keyword">int</span> <span class="token function">distributeCoins</span><span class="token punctuation">(</span>TreeNode root<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>root <span class="token operator">==</span> null<span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">return</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token function">conqer</span><span class="token punctuation">(</span>root<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> count<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">conqer</span> <span class="token punctuation">(</span> TreeNode root<span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>root<span class="token punctuation">.</span>left <span class="token operator">!=</span> null<span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token function">conqer</span><span class="token punctuation">(</span>root<span class="token punctuation">.</span>left<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">calclator</span><span class="token punctuation">(</span>root<span class="token punctuation">,</span> root<span class="token punctuation">.</span>left<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>root<span class="token punctuation">.</span>right <span class="token operator">!=</span> null<span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token function">conqer</span><span class="token punctuation">(</span>root<span class="token punctuation">.</span>right<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">calclator</span><span class="token punctuation">(</span>root<span class="token punctuation">,</span> root<span class="token punctuation">.</span>right<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">calclator</span><span class="token punctuation">(</span>TreeNode root<span class="token punctuation">,</span> TreeNode child<span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>child<span class="token punctuation">.</span>val <span class="token operator"><=</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">int</span> increase <span class="token operator">=</span> <span class="token number">1</span><span class="token operator">-</span>child<span class="token punctuation">.</span>val<span class="token punctuation">;</span>
count <span class="token operator">+=</span> increase<span class="token punctuation">;</span>
child<span class="token punctuation">.</span>val <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span>
root<span class="token punctuation">.</span>val <span class="token operator">=</span> root<span class="token punctuation">.</span>val <span class="token operator">-</span> increase<span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token keyword">else</span> <span class="token punctuation">{</span>
<span class="token keyword">int</span> decrease <span class="token operator">=</span> child<span class="token punctuation">.</span>val <span class="token operator">-</span> <span class="token number">1</span><span class="token punctuation">;</span>
count <span class="token operator">+=</span> decrease<span class="token punctuation">;</span>
child<span class="token punctuation">.</span>val <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span>
root<span class="token punctuation">.</span>val <span class="token operator">=</span> root<span class="token punctuation">.</span>val <span class="token operator">+</span> decrease<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
</div>
</body>
</html>
쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com0tag:blogger.com,1999:blog-5476970697166392565.post-36174748254286241112019-09-03T08:14:00.002-07:002019-09-03T08:17:35.723-07:001047. Remove All Adjacent Duplicates In String<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>1047. Remove All Adjacent Duplicates In String</title>
<link rel="stylesheet" href="https://stackedit.io/style.css" />
</head>
<body class="stackedit">
<div class="stackedit__html"><h1 id="remove-all-adjacent-duplicates-in-string">1047. Remove All Adjacent Duplicates In String</h1>
<p>-<a href="https://leetcode.com/problems/verifying-an-alien-dictionary/">https://leetcode.com/problems/verifying-an-alien-dictionary/</a></p>
<p>Hi! I’m your first Markdown file in <strong>StackEdit</strong>. If you want to learn about StackEdit, you can read me. If you want to play with Markdown, you can edit me. Once you have finished with me, you can create new files by openi</p>
<h2 id="차-코드">1차 코드</h2>
<pre><code>49 ms 38.5 MB java
</code></pre>
<pre class=" language-java"><code class="prism language-java"><span class="token keyword">class</span> <span class="token class-name">Solution</span> <span class="token punctuation">{</span>
<span class="token keyword">public</span> String <span class="token function">removeDuplicates</span><span class="token punctuation">(</span>String S<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token comment">// "abbaca"</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>S<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator"><=</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">return</span> S<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">char</span><span class="token punctuation">[</span><span class="token punctuation">]</span> chars <span class="token operator">=</span> S<span class="token punctuation">.</span><span class="token function">toCharArray</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
Stack<span class="token operator"><</span>Character<span class="token operator">></span> stack <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Stack</span><span class="token operator"><</span>Character<span class="token operator">></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">int</span> i<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span> i<span class="token operator"><</span>chars<span class="token punctuation">.</span>length<span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span><span class="token operator">!</span>stack<span class="token punctuation">.</span><span class="token function">isEmpty</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
Character cha <span class="token operator">=</span> stack<span class="token punctuation">.</span><span class="token function">peek</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">if</span> <span class="token punctuation">(</span>cha <span class="token operator">!=</span> null <span class="token operator">&&</span> cha <span class="token operator">==</span> chars<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
stack<span class="token punctuation">.</span><span class="token function">pop</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">continue</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
stack<span class="token punctuation">.</span><span class="token function">push</span><span class="token punctuation">(</span>chars<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">char</span> <span class="token punctuation">[</span><span class="token punctuation">]</span> result <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">char</span><span class="token punctuation">[</span>stack<span class="token punctuation">.</span><span class="token function">size</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword">int</span> index <span class="token operator">=</span> stack<span class="token punctuation">.</span><span class="token function">size</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">;</span>
<span class="token keyword">while</span><span class="token punctuation">(</span><span class="token operator">!</span>stack<span class="token punctuation">.</span><span class="token function">isEmpty</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
Character last <span class="token operator">=</span> stack<span class="token punctuation">.</span><span class="token function">pop</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
result<span class="token punctuation">[</span>index<span class="token operator">--</span><span class="token punctuation">]</span> <span class="token operator">=</span> last<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> <span class="token keyword">new</span> <span class="token class-name">String</span><span class="token punctuation">(</span>result<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<h2 id="차코드">2차코드</h2>
<ul>
<li>자료구조 안쓰고 다시 한번더 풀어봐야겠다.</li>
<li>조건이 바로 앞뒤 2개의 character 값만 비교하는거라서 마지막 last index를 기억하는걸로</li>
<li>앞뒤가 서로 다를때 last index = currentIndex</li>
<li>앞뒤가 서로 같을때 find last index and check index ‘0’</li>
</ul>
<pre><code>Runtime: 4 ms, faster than 98.11% of Java online submissions for Remove All Adjacent Duplicates In String.
Memory Usage: 37.7 MB, less than 100.00% of Java online submissions for Remove All Adjacent Duplicates In String.
</code></pre>
<pre class=" language-java"><code class="prism language-java"><span class="token keyword">class</span> <span class="token class-name">Solution</span> <span class="token punctuation">{</span>
<span class="token keyword">public</span> String <span class="token function">removeDuplicates</span><span class="token punctuation">(</span>String S<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token comment">// "abbaca"</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>S<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator"><=</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">return</span> S<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">char</span><span class="token punctuation">[</span><span class="token punctuation">]</span> chars <span class="token operator">=</span> S<span class="token punctuation">.</span><span class="token function">toCharArray</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">int</span> last <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">int</span> i<span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span> i<span class="token operator"><</span>chars<span class="token punctuation">.</span>length<span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>last <span class="token operator">>=</span> <span class="token number">0</span> <span class="token operator">&&</span> chars<span class="token punctuation">[</span>last<span class="token punctuation">]</span> <span class="token operator">==</span> chars<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token comment">// 같을때</span>
chars<span class="token punctuation">[</span>i<span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token string">'0'</span><span class="token punctuation">;</span>
chars<span class="token punctuation">[</span>last<span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token string">'0'</span><span class="token punctuation">;</span>
last <span class="token operator">--</span><span class="token punctuation">;</span>
<span class="token keyword">while</span><span class="token punctuation">(</span>last <span class="token operator">>=</span><span class="token number">0</span> <span class="token operator">&&</span> chars<span class="token punctuation">[</span>last<span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token string">'0'</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
last <span class="token operator">--</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{</span>
last <span class="token operator">=</span> i<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
StringBuilder builder <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">StringBuilder</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">int</span> i<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span> i<span class="token operator"><</span>chars<span class="token punctuation">.</span>length<span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>chars<span class="token punctuation">[</span>i<span class="token punctuation">]</span> <span class="token operator">!=</span> <span class="token string">'0'</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
builder<span class="token punctuation">.</span><span class="token function">append</span><span class="token punctuation">(</span>chars<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> builder<span class="token punctuation">.</span><span class="token function">toString</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<h2 id="차코드-1">3차코드</h2>
<pre><code>Runtime: 3 ms, faster than 99.83% of Java online submissions for Remove All Adjacent Duplicates In String.
Memory Usage: 38.1 MB, less than 100.00% of Java online submissions for Remove All Adjacent Duplicates In String.
</code></pre>
<ul>
<li>2차코드에서 StringBilder 제거</li>
</ul>
<pre class=" language-java"><code class="prism language-java"><span class="token comment">// "abbaca"</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>S<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator"><=</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">return</span> S<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">char</span><span class="token punctuation">[</span><span class="token punctuation">]</span> chars <span class="token operator">=</span> S<span class="token punctuation">.</span><span class="token function">toCharArray</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">int</span> last <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword">int</span> resltLenth <span class="token operator">=</span> chars<span class="token punctuation">.</span>length<span class="token punctuation">;</span>
<span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">int</span> i<span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span> i<span class="token operator"><</span>chars<span class="token punctuation">.</span>length<span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>last <span class="token operator">>=</span> <span class="token number">0</span> <span class="token operator">&&</span> chars<span class="token punctuation">[</span>last<span class="token punctuation">]</span> <span class="token operator">==</span> chars<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">{</span> <span class="token comment">// 같을때</span>
chars<span class="token punctuation">[</span>i<span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token string">'0'</span><span class="token punctuation">;</span>
chars<span class="token punctuation">[</span>last<span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token string">'0'</span><span class="token punctuation">;</span>
last <span class="token operator">--</span><span class="token punctuation">;</span>
resltLenth<span class="token operator">-=</span><span class="token number">2</span><span class="token punctuation">;</span>
<span class="token keyword">while</span><span class="token punctuation">(</span>last <span class="token operator">>=</span><span class="token number">0</span> <span class="token operator">&&</span> chars<span class="token punctuation">[</span>last<span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token string">'0'</span> <span class="token punctuation">)</span><span class="token punctuation">{</span>
last <span class="token operator">--</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{</span>
last <span class="token operator">=</span> i<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">char</span><span class="token punctuation">[</span><span class="token punctuation">]</span> result <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">char</span><span class="token punctuation">[</span>resltLenth<span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword">int</span> resultIndex <span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">int</span> i<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span> i<span class="token operator"><</span>chars<span class="token punctuation">.</span>length<span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>chars<span class="token punctuation">[</span>i<span class="token punctuation">]</span> <span class="token operator">!=</span> <span class="token string">'0'</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
result<span class="token punctuation">[</span>resultIndex<span class="token operator">++</span><span class="token punctuation">]</span> <span class="token operator">=</span> chars<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> <span class="token keyword">new</span> <span class="token class-name">String</span><span class="token punctuation">(</span>result<span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
</div>
</body>
</html>
쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com0tag:blogger.com,1999:blog-5476970697166392565.post-65590176484768307762019-09-03T00:58:00.002-07:002019-09-03T08:17:46.792-07:00290. word-pattern<html>
<head>
<title>290. word-pattern</title>
<link href="https://stackedit.io/style.css" rel="stylesheet"></link>
</head>
<body class="stackedit">
<div class="stackedit__html">
<ul>
<li>문제 이해가 문제보다 더 어려운 문제</li>
</ul>
<pre><code>bijection : 전단사
</code></pre>
<pre class=" language-java"><code class="prism language-java"><span class="token keyword">class</span> <span class="token class-name">Solution</span> <span class="token punctuation">{</span>
<span class="token keyword">public</span> <span class="token keyword">boolean</span> <span class="token function">wordPattern</span><span class="token punctuation">(</span>String pattern<span class="token punctuation">,</span> String str<span class="token punctuation">)</span> <span class="token punctuation">{</span>
String<span class="token punctuation">[</span><span class="token punctuation">]</span> map <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">String</span><span class="token punctuation">[</span><span class="token number">30</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword">char</span> <span class="token punctuation">[</span><span class="token punctuation">]</span> patternArr <span class="token operator">=</span> pattern<span class="token punctuation">.</span><span class="token function">toCharArray</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
String<span class="token punctuation">[</span><span class="token punctuation">]</span> strArr <span class="token operator">=</span> str<span class="token punctuation">.</span><span class="token function">split</span><span class="token punctuation">(</span><span class="token string">" "</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
Set<span class="token operator"><</span>String<span class="token operator">></span> used <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">HashSet</span><span class="token operator"><</span><span class="token operator">></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>patternArr<span class="token punctuation">.</span>length <span class="token operator">!=</span> strArr<span class="token punctuation">.</span>length<span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">return</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">int</span> i<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span> i<span class="token operator"><</span>patternArr<span class="token punctuation">.</span>length<span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
String value <span class="token operator">=</span> map<span class="token punctuation">[</span>patternArr<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token operator">-</span><span class="token string">'a'</span><span class="token punctuation">]</span> <span class="token punctuation">;</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>value <span class="token operator">==</span> null<span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>used <span class="token punctuation">.</span><span class="token function">contains</span><span class="token punctuation">(</span>strArr<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">return</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
used<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>strArr<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
map<span class="token punctuation">[</span>patternArr<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token operator">-</span><span class="token string">'a'</span><span class="token punctuation">]</span> <span class="token operator">=</span> strArr<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span><span class="token operator">!</span>map<span class="token punctuation">[</span>patternArr<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token operator">-</span><span class="token string">'a'</span><span class="token punctuation">]</span><span class="token punctuation">.</span><span class="token function">equals</span><span class="token punctuation">(</span>strArr<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">return</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> <span class="token boolean">true</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
</div>
</body>
</html>
쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com0tag:blogger.com,1999:blog-5476970697166392565.post-62045037534463352522019-08-29T21:11:00.002-07:002019-09-03T08:17:46.784-07:00605. can-place-flowers https://leetcode.com/problems/can-place-flowers/<html>
<head>
<title>605. can-place-flowers</title>
<link href="https://stackedit.io/style.css" rel="stylesheet"></link>
</head>
<body class="stackedit">
<div class="stackedit__html">
<ul>
<li>정방향 탐색하면서 앞뒤가 0이면 1로 변경하고 n–해준다.</li>
<li>n <= 작으면 return true</li>
</ul>
<pre><code>Runtime: 1 ms, faster than 100.00% of Java online submissions for Can Place Flowers.
Memory Usage: 38.6 MB, less than 100.00% of Java online submissions for Can Place Flowers.
</code></pre>
<pre class=" language-java"><code class="prism language-java"><span class="token keyword">class</span> <span class="token class-name">Solution</span> <span class="token punctuation">{</span>
<span class="token keyword">public</span> <span class="token keyword">boolean</span> <span class="token function">canPlaceFlowers</span><span class="token punctuation">(</span><span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span> flowerbed<span class="token punctuation">,</span> <span class="token keyword">int</span> n<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>flowerbed<span class="token punctuation">.</span>length <span class="token operator">==</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">return</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>flowerbed<span class="token punctuation">.</span>length<span class="token operator">==</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>flowerbed<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>n <span class="token operator"><=</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">return</span> <span class="token boolean">true</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{</span>
<span class="token keyword">return</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{</span>
<span class="token keyword">return</span> n<span class="token operator">==</span><span class="token number">0</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">for</span><span class="token punctuation">(</span> <span class="token keyword">int</span> i<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span> i<span class="token operator"><</span>flowerbed<span class="token punctuation">.</span>length<span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>flowerbed<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token operator">==</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">continue</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>i <span class="token operator">==</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>flowerbed<span class="token punctuation">[</span>i<span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token operator">==</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
n<span class="token operator">--</span><span class="token punctuation">;</span>
flowerbed<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token keyword">else</span> <span class="token keyword">if</span><span class="token punctuation">(</span>i <span class="token operator">==</span> flowerbed<span class="token punctuation">.</span>length<span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>flowerbed<span class="token punctuation">[</span>i<span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
flowerbed<span class="token punctuation">[</span>i<span class="token punctuation">]</span> <span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span>
n<span class="token operator">--</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>flowerbed<span class="token punctuation">[</span>i<span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token number">0</span> <span class="token operator">&&</span> flowerbed<span class="token punctuation">[</span>i<span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token operator">==</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
flowerbed<span class="token punctuation">[</span>i<span class="token punctuation">]</span> <span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">;</span>
n<span class="token operator">--</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> n<span class="token operator"><=</span><span class="token number">0</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
</div>
</body>
</html>
쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com1tag:blogger.com,1999:blog-5476970697166392565.post-65367239032543115882019-08-28T11:23:00.002-07:002019-09-03T08:17:46.789-07:00665. non-decreasing-array<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>665. non-decreasing-array</title>
<link rel="stylesheet" href="https://stackedit.io/style.css" />
</head>
<body class="stackedit">
<div class="stackedit__html"><ul>
<li>Runtime: 1 ms, faster than 99.48% of Java online submissions for Non-decreasing Array.</li>
<li>이 문제 조금 어렵네요</li>
<li>for문 한번돌리려고 했는데 너무 로직이 복잡해서 2번돌리는걸로</li>
</ul>
<pre class=" language-java"><code class="prism language-java"><span class="token keyword">class</span> <span class="token class-name">Solution</span> <span class="token punctuation">{</span>
<span class="token keyword">public</span> <span class="token keyword">boolean</span> <span class="token function">checkPossibility</span><span class="token punctuation">(</span><span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span> nums<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>nums<span class="token punctuation">.</span>length <span class="token operator"><=</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">return</span> <span class="token boolean">true</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">int</span> count <span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword">boolean</span> pre <span class="token operator">=</span> <span class="token boolean">true</span><span class="token punctuation">;</span>
<span class="token keyword">boolean</span> after <span class="token operator">=</span> <span class="token boolean">true</span><span class="token punctuation">;</span>
<span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">int</span> i<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span> i<span class="token operator"><</span>nums<span class="token punctuation">.</span>length<span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>nums<span class="token punctuation">[</span>i<span class="token punctuation">]</span> <span class="token operator"><=</span> nums<span class="token punctuation">[</span>i<span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>count <span class="token operator">></span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
pre <span class="token operator">=</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
<span class="token keyword">break</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
count<span class="token operator">++</span><span class="token punctuation">;</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>i <span class="token operator">></span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>nums<span class="token punctuation">[</span>i<span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token operator">></span>nums<span class="token punctuation">[</span>i<span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
pre<span class="token operator">=</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
<span class="token keyword">break</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
count <span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">int</span> i<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span> i<span class="token operator"><</span>nums<span class="token punctuation">.</span>length<span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>nums<span class="token punctuation">[</span>i<span class="token punctuation">]</span> <span class="token operator"><=</span> nums<span class="token punctuation">[</span>i<span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>count <span class="token operator">></span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
after <span class="token operator">=</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
<span class="token keyword">break</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
count<span class="token operator">++</span><span class="token punctuation">;</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>i<span class="token operator">+</span><span class="token number">2</span> <span class="token operator"><</span>nums<span class="token punctuation">.</span>length<span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>nums<span class="token punctuation">[</span>i<span class="token punctuation">]</span> <span class="token operator">></span>nums<span class="token punctuation">[</span>i<span class="token operator">+</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
after<span class="token operator">=</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
<span class="token keyword">break</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
i<span class="token operator">++</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> <span class="token punctuation">(</span>pre <span class="token operator">||</span> after<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
<ul>
<li>윗코드 리팩토링</li>
</ul>
<pre class=" language-java"><code class="prism language-java"><span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Solution</span> <span class="token punctuation">{</span>
<span class="token keyword">public</span> <span class="token keyword">boolean</span> <span class="token function">checkPossibility</span><span class="token punctuation">(</span><span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span> nums<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>nums<span class="token punctuation">.</span>length <span class="token operator"><=</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">return</span> <span class="token boolean">true</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">int</span> count <span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">int</span> i<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span> i<span class="token operator"><</span>nums<span class="token punctuation">.</span>length<span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>nums<span class="token punctuation">[</span>i<span class="token punctuation">]</span> <span class="token operator">></span> nums<span class="token punctuation">[</span>i<span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>count<span class="token operator">++</span> <span class="token operator">></span><span class="token number">0</span><span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>i <span class="token operator">></span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>nums<span class="token punctuation">[</span>i<span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token operator"><=</span>nums<span class="token punctuation">[</span>i<span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
nums<span class="token punctuation">[</span>i<span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token operator">=</span> nums<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword">continue</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>i<span class="token operator">+</span><span class="token number">2</span> <span class="token operator"><</span>nums<span class="token punctuation">.</span>length<span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>nums<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token operator"><=</span>nums<span class="token punctuation">[</span>i<span class="token operator">+</span><span class="token number">2</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
nums<span class="token punctuation">[</span>i<span class="token operator">+</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token operator">=</span> nums<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword">continue</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{</span>
<span class="token keyword">if</span><span class="token punctuation">(</span>i<span class="token operator">></span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">{</span>
<span class="token keyword">return</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">return</span> <span class="token boolean">true</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre>
</div>
</body>
</html>
쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com0tag:blogger.com,1999:blog-5476970697166392565.post-2302032996378987362019-07-21T18:14:00.001-07:002019-07-21T18:14:43.007-07:00오랫만에 쓰는 일기오늘은 그냥 이런저런 잡담이다. ㅎ<br />
<br />
어제는 꿈을 꾸었는데 회사에 입사를 했는데 알고리즘 문제가 나왔다.<br />
이런~ 꿈속에서 알고리즘 문제를 푸는것은 처음이었다.<br />
<br />
문제<br />
<br />
1, 2, 3 ( 2개 ) 81, 91 이런 문제였던것 같다. 123과 81, 91 사이에 나올수 있는<br />
(2개에서) 숫자의 경우의 수가 몇가지인가???<br />
(단 정렬된 구조이며, 숫자가 중복이 가능하다 )<br />
<br />
이 문제가 나왔네.. 이 문제는 나의 기억이 만들어낸 문제인가? 아니면 화가나 음악가들은 꿈속에서 영감을 받는다고 하는데 이것도 그것중의 하나인가?<br />
<br />
<br />
(근황)<br />
- 요즘 애들보느라 너무 공부를 안한다. 핑계인가? 놀고싶어서인가?<br />
- 오늘 월요일아침 출근길에 문뜩 내가 살아있고 숨쉬고 있음을 느꼈다.<br />
<br />
<br />쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com0tag:blogger.com,1999:blog-5476970697166392565.post-5888034409775169102019-03-18T08:03:00.001-07:002019-03-18T08:04:24.661-07:002019년을 시작하며 <br />
2019년도에 내 머리속에 공부해야한다라고 생각하는것들 우선순위를 정해야겠다.<br />
실력은 부족한데, 욕심은 많고 시간은 부족하니 마음만 급하다. ㅎ<br />
<br />
1. React, Redux,<br />
- reactive 한 client 환경에 적응을 해야한다.<br />
2. 블록체인?<br />
- 이거는 과감히 버려야겠다.<br />
3. 머신러닝<br />
- 여기는 내 분야가 아닌걸로<br />
4. MongoDB<br />
- 문서화를 진행하고, 조금더 개념적으로 깊게 접근 한다.<br />
5. Spark<br />
- 현재 사용하고 있는 batch 서비스를 spark 로 전환한다.<br />
6. Hadoop<br />
- 하둡을 시작한다. Just beginner<br />
7. 수학<br />
- 기초 정수론 독학한다.<br />
- 이산수학 독학<br />
8. Kafka<br />
- 이것도 해야하는데<br />
9. Reactor<br />
- 이것도<br />
10. leetcode, Project Euler 문제 풀이<br />
<br />
다시 정리하자면 하고싶은거와 해야하는거를 두가지로 나누어 본다면 아래와 같다<br />
<br />
<b>하고 싶은거 </b><br />
7. 수학<br />
- 기초 정수론 독학한다.<br />
- 이산수학 독학<br />
10. leetcode, Project euler 문제 풀이<br />
<br />
<br />
<b>해야하는거</b><br />
1. React, Redux,<br />
4. MongoDB<br />
5. Spark<br />
6. Hadoop<br />
8. Kafka<br />
<br />
하고 싶은거는 집에서 1-2시간씩 일정을 잡고 하면 될것 같고<br />
<br />
해야하는거는 업무와 상관있기때문에<br />
회사에서 시간을 내서 공부를 해야겠다.<br />
<br />
2019년 크리스마스때, 한해를 마무리할때 오늘 정리했던 모든것들을 다 이루기를 바라며<br />
희망해본다.쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com1tag:blogger.com,1999:blog-5476970697166392565.post-52793450237522504362019-03-06T06:38:00.002-08:002019-03-06T06:40:02.724-08:00problem 304 Primonacci<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: left;">
거의 3년만에 올일러 문제가 풀렸다 ㅠ 드뎌 200문제를 풀었고 level은 8로 올랐다.</div>
<div class="separator" style="clear: both; text-align: left;">
이 문제도 4일걸려서 풀었는데 계속 풀어야할지 의문이긴하다 .ㅎ </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
It took 4 days to solve this problem. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
finally I solved 200 problems in proejct euler ^^ </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
https://projecteuler.net/problem=304</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
hint : </div>
<div class="separator" style="clear: both; text-align: left;">
remainder </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
x mod a + x mod b ==x mod a + b </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVa8_V1owJVshbUA5o0wDy04rI0wikwBNMch0SHMWHhUlPYmuU0waDcpb7B4zlRo3cwym0_vVaCMZdb5ejg4A7p5oLOOv8wXPG8M0mD_8WHFeJVMFeTbkxaS9eMzd9DlJ5suKU8VgS0HM/s1600/%25EB%25AC%25B8%25EC%25A0%259C%25ED%2592%2580%25EA%25B8%25B0.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="893" data-original-width="1068" height="534" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVa8_V1owJVshbUA5o0wDy04rI0wikwBNMch0SHMWHhUlPYmuU0waDcpb7B4zlRo3cwym0_vVaCMZdb5ejg4A7p5oLOOv8wXPG8M0mD_8WHFeJVMFeTbkxaS9eMzd9DlJ5suKU8VgS0HM/s640/%25EB%25AC%25B8%25EC%25A0%259C%25ED%2592%2580%25EA%25B8%25B0.png" width="640" /></a> </div>
쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com4tag:blogger.com,1999:blog-5476970697166392565.post-88814212300348798102019-03-04T19:45:00.002-08:002019-03-04T19:45:32.172-08:00이번주 문제 https://projecteuler.net/problem=425 프라임 숫자와, 관련해서 공부해보자이번주 문제 https://projecteuler.net/problem=425 프라임 숫자와, 관련해서 공부해보자쯔앙구http://www.blogger.com/profile/11644193874123404087noreply@blogger.com0