<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>  준성 개발 일지</title>
    <link>https://dev-wnstjd.tistory.com/</link>
    <description>백엔드 개발자를 위한 Blog</description>
    <language>ko</language>
    <pubDate>Mon, 18 May 2026 17:27:13 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Dbswnstjd</managingEditor>
    <item>
      <title>  [자격증] [SQLD] 2024년 제 54회 SQLD 개발자 시험 후기</title>
      <link>https://dev-wnstjd.tistory.com/527</link>
      <description>&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;시험 후기&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2024년 8월 24일 SQLD 시험을 보고왔다. 전공자에 난이도가 그렇게 어렵지 않다고 해서 그냥 한번 보자는 식으로 시험을 봤다. 준비 기간도 없이 그냥 전날 3-4시간정도 노랭이 풀어보고 생각보다 난이도가 어려워서 그냥 보게 되었다. 근데 알고보니 노랭이는 SQLP 문제까지 있어서 더 어려운 문제가 있었나보다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SQLD 시험을 보면서 느낀건 확실히 실무 경험이 있으면 SQL을 많이 다루다 보니 쿼리를 짜기에 익숙하고 기본 개념같은 경우에는 전공자라 큰 어려움은 없었다. 그런데 Oracle과 SQL-server의 차이에 대해 잘 몰라서 몇문제가 헷갈렸고 NULL 처리에 대해 익숙하다면 큰 준비 없이 합격할 수 있는 난이도였던 것 같다. 그리고 사실 윈도우 함수도 실무에서 많이 쓰지 않았고 그냥 있는 정도만 알고갔는데 꽤 많은 문제가 있었다. 난이도가 어려웠다기보다는 까다로운 몇문제가 있었지만 이것들을 제외하고는 일주일정도 공부하면 충분히 합격할 수 있는 시험인 것 같다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비전공자라면 1주정도는 데이터베이스에 대해 이해하고 1주정도는 문제를 많이 풀어보는 것이 좋을 것 같다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞으로 남은 여러개의 자격증도 따야하고 첫 자격증을 생각보다 쉽게 따서 앞으로 준비를 잘 해야겠다.&amp;nbsp;&lt;/p&gt;</description>
      <category>  CS [ComputerScience]/  자격증</category>
      <category>SQL</category>
      <category>sqld</category>
      <category>데이터</category>
      <category>데이터베이스</category>
      <category>자격증</category>
      <category>전공</category>
      <author>Dbswnstjd</author>
      <guid isPermaLink="true">https://dev-wnstjd.tistory.com/527</guid>
      <comments>https://dev-wnstjd.tistory.com/527#entry527comment</comments>
      <pubDate>Wed, 11 Sep 2024 21:16:56 +0900</pubDate>
    </item>
    <item>
      <title>  [자격증] [정보처리기사] 정보처리기사 필기</title>
      <link>https://dev-wnstjd.tistory.com/526</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;2과목 소프트웨어 개발&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;삽입 정렬 (Insertion Sort) - &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;O(N^2)&lt;/span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;두번째 값부터 이전 값들과 비교를 시작&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;비교하는 값을 Key라고 할 때, 순서를 변경해야 한다면 Key를 변경 할 자리에 삽입하고 그 자리에 있던 값은 뒤로 한 칸 이동 시킴.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;선택 정렬(Selection Sort) - &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;O(N^2)&lt;/span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;처음 원소 자리부터 순서대로 모든 값들을 검사하여 작은 순서대로 정렬하는 방법&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;버블 정렬(Bubble Sort)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;서로 인접한 두 원소를 검사하여 정렬하는 알고리즘&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;인접한 두 개의 레코드 키 값을 비교하여 그 크기에 따라 위치를 서로 교환하는 정렬 방식&lt;/span&gt;&lt;/p&gt;</description>
      <category>  CS [ComputerScience]/  자격증</category>
      <category>소프트웨어개발</category>
      <category>자격증</category>
      <category>정보처리기사</category>
      <category>필기</category>
      <author>Dbswnstjd</author>
      <guid isPermaLink="true">https://dev-wnstjd.tistory.com/526</guid>
      <comments>https://dev-wnstjd.tistory.com/526#entry526comment</comments>
      <pubDate>Sun, 21 Apr 2024 19:33:30 +0900</pubDate>
    </item>
    <item>
      <title>  [자격증] [정보처리기사] 정보처리기사 필기</title>
      <link>https://dev-wnstjd.tistory.com/525</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;데이터 베이스 구축&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;릴레이션 (테이블)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;속성 = 테이블의 열 (Column)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;차수 = 속성의 수&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;튜플 = 테이블의 행 (Row)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;카디널리티 = 튜플의 수&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;DDL(Data Definition Language)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Create, Alter, Drop&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;DML(Data Manipulation Language)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;SELECT, INSERT, UPDATE, DELETE&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;DCL(Data Control Language)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;GRANT, REVOKE, COMMIT, ROLLBACK&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;DISTINCT : 중복 제거&lt;/span&gt;&lt;span&gt;CASCADE : 부모 값 삭제 시 자식도 삭제&lt;/span&gt;&lt;span&gt;ALTER : 속성 추가, 삭제&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;후보키 - 유일성과 최소성 만족&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;기본키 - null 값 불가, 중복 x, 식별자&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;슈퍼키 - 유일성 만족, 최소성 x&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;외래키 - 기본키를 참조하는 키&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span&gt;DB 락(Locking) - 트랜잭션이 접근하는 동안 데이터를 잠궈 다른 트랜잭션이 접근하지 못하도록 하는 것&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;공유 락(Shared Lock)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;공유 락은 데이터를 변경하지 않는 읽기 명령에 대해 주어지는 락으로 &lt;b&gt;Read Lock &lt;/b&gt;이라고도 불린다. 여러 사용자가 동시에 데이터를 읽어도 데이터의 일관성에는 아무런 영향을 주지 않기 때문에, 공유 락끼리는 동시에 접근이 가능하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;베타 락(Exclusive Lock)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;베타 락은 데이터에 변경을 가하는 쓰기 명령들에 대해 주어지는 락으로 &lt;b&gt;Write Lock &lt;/b&gt;으로도 불린다. 베타 락은 이름과 같이 다른 세션이 해당 자원에 접근(SELECT, INSERT..) 하는 것을 막는다. 이러한 점에서 베타 락은 멀티 쓰레딩 환경에서, 임계 영역을 안전하게 관리하기 위해 활용되는 뮤텍스와 유사하다고 볼 수 있다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;업데이트 락(Update Lock)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;업데이트 락은 데이터를 수정하기 위해 베타 락을 걸기 전, 데드 락을 방지하기 위해 사용되는 락이다. 일반적으로 업데이트 락은 UPDATE 쿼리의 필터(WHERE)가 실행되는 과정에 적용&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;서로 다른 트랜잭션에서 동일한 자원에 대해 읽기 쿼리 이후, 업데이트 쿼리를 적용하는 경우 컨버젼 데드락이 발생하는데, 이를 막기 위해 일부 SELECT 쿼리에서도 업데이트 락을 적용하기도 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;내재 락(Intent Lock)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;내재 락은 사용자가 요청한 범위에 대한 락을 걸 수 있는지 여부를 빠르게 파악하기 위해 사용되는 락이다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span&gt;트랜잭션 특징 - ACID&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Atomicity 원자성&amp;nbsp; - All or nothing, 즉 모두 반영되거나 아무것도 반영되지 않아야 한다는 특징&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Consistency 일관성 - 트랜잭션의 작업 처리 결과는 항상 일관성 있어야 함&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Isolation 독립성 - 둘 이상의 트랜잭션이 동시에 병행 실행되고 있을 때 , 어떤 트랜잭션도 다른 트랜잭션 연산에 끼어들 수 없다.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Durability 지속성 - 트랜잭션이 성공적으로 완료되었으면 , 결과는 영구적으로 반영되어야 한다.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;Commit&lt;/b&gt;&lt;/span&gt;&lt;span&gt;하나의 트랜잭션이 성공적으로 끝나게 되면 DB가 일관성있는 상태일 때 이를 알려주기 위해 사용하는 연산&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Rollback&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;하나의 트랜잭션 처리가 비정상적으로 종료되어 트랜잭션 원자성이 깨진 경우&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>  CS [ComputerScience]/  자격증</category>
      <category>데이터베이스구축</category>
      <category>소프트웨어개발</category>
      <category>소프트웨어설계</category>
      <category>정보처리기사</category>
      <category>필기</category>
      <author>Dbswnstjd</author>
      <guid isPermaLink="true">https://dev-wnstjd.tistory.com/525</guid>
      <comments>https://dev-wnstjd.tistory.com/525#entry525comment</comments>
      <pubDate>Sat, 20 Apr 2024 21:15:23 +0900</pubDate>
    </item>
    <item>
      <title>  [백준] [Java] [Silver3] 14501번_퇴사</title>
      <link>https://dev-wnstjd.tistory.com/524</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/14501&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.acmicpc.net/problem/14501&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1712325908688&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;14501번: 퇴사&quot; data-og-description=&quot;첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다.&quot; data-og-host=&quot;www.acmicpc.net&quot; data-og-source-url=&quot;https://www.acmicpc.net/problem/14501&quot; data-og-url=&quot;https://www.acmicpc.net/problem/14501&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bWDwLB/hyVJ5EEjwJ/hU2Jaqhu7joG4A8GsHkRw1/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480&quot;&gt;&lt;a href=&quot;https://www.acmicpc.net/problem/14501&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.acmicpc.net/problem/14501&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bWDwLB/hyVJ5EEjwJ/hU2Jaqhu7joG4A8GsHkRw1/img.png?width=2834&amp;amp;height=1480&amp;amp;face=0_0_2834_1480');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;14501번: 퇴사&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.acmicpc.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1712327494375&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package Baekjoon;

import java.io.*;
import java.util.*;

public class B_14501 {
     public static void main (String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
       int N = Integer.parseInt(br.readLine());
        
       int[] t = new int[N];
       int[] p = new int[N];
        
        StringTokenizer st;
        
        for(int i=0; i&amp;lt;N; i++){
            st = new StringTokenizer(br.readLine());
            
            t[i] = Integer.parseInt(st.nextToken());
            p[i] = Integer.parseInt(st.nextToken());
        }
        
        int[] dp = new int[N+1]; // 1일에 일한 돈은 2일차에 누적되기 때문
         // 날짜를 진행하면서 해당 날짜에 대한 최대 요금을 저장하는 배열, 각 배열의 인덱스마다 최대 요금을 저장해놓는다. 
        
        for(int i=0; i&amp;lt;N; i++){
            if(i + t[i] &amp;lt;= N) { 
                // 날짜가 초과되지 않으면서 해당 날짜에 번 돈을 계산
            	dp[i + t[i]] = Math.max(dp[i + t[i]], dp[i] + p[i]);
            }
          
            // 오늘 일한 걸 다음날 누적시키기 위한 계산
            dp[i+1] = Math.max(dp[i+1], dp[i]);
        }
        System.out.println(dp[N]);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;삼성 기출문제를 풀다가 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;자바로는 처음 DP 문제를 풀게 되었다.&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;누적된 값의 최대값을 구하는 문제이기 때문에 큰 어려움은 없다. 하지만 주의해야할 점은 날짜가 초과되는 경우 처리를 해줘야 하기 때문에 잘 생각해야 한다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category> ️ Algorithm/  백준</category>
      <category>14501</category>
      <category>백준</category>
      <category>알고리즘</category>
      <category>퇴사</category>
      <author>Dbswnstjd</author>
      <guid isPermaLink="true">https://dev-wnstjd.tistory.com/524</guid>
      <comments>https://dev-wnstjd.tistory.com/524#entry524comment</comments>
      <pubDate>Fri, 5 Apr 2024 23:33:54 +0900</pubDate>
    </item>
    <item>
      <title>  [CS면접] 웹 면접 질문 [20] [JDBC]</title>
      <link>https://dev-wnstjd.tistory.com/522</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. JDBC(Spring JDBC) 란 ?&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;JDBC (Java Database Connectivity)는 자바에서 데이터베이스에 접속할 수 있는 API 이다. JDBC는 데이터베이스와의 통신을 가능하게 하며, 데이터베이스의 데이터를 가져오거나 변경할 수 있는 기능을 제공한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;즉, JDBC를 사용하여 Java 어플리케이션에서 데이터베이스에 접근하여 데이터를 검색, 삽입, 삭제, 갱신할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Spring JDBC란?&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Spring JDBC는 스프링 프레임워크에서 제공하는 JDBC 모듈이다. Spring JDBC는 JDBC 코드를 간결하게 작성하고, 더 쉽게 데이터베이스와 상호작용이 가능하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;DataSource&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;데이터 베이스 커넥션 풀을 생성하고 관리하기 위한 인터페이스&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;&quot;&gt;Spring은 DataSource로 DB의 연결을 한다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;&quot;&gt;1. DB와 연결&lt;/span&gt;&lt;span style=&quot;&quot;&gt;2. DB Connection Pool 생성&lt;/span&gt;&lt;span style=&quot;&quot;&gt;3. 트랜잭션 처리&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>  CS [ComputerScience]</category>
      <author>Dbswnstjd</author>
      <guid isPermaLink="true">https://dev-wnstjd.tistory.com/522</guid>
      <comments>https://dev-wnstjd.tistory.com/522#entry522comment</comments>
      <pubDate>Tue, 2 Apr 2024 17:27:00 +0900</pubDate>
    </item>
    <item>
      <title>⏹️[SW Expert Academy] [D4] [1226] 미로1</title>
      <link>https://dev-wnstjd.tistory.com/509</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;a href=&quot;https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&amp;amp;problemLevel=4&amp;amp;problemLevel=5&amp;amp;contestProbId=AV14vXUqAGMCFAYD&amp;amp;categoryId=AV14vXUqAGMCFAYD&amp;amp;categoryType=CODE&amp;amp;problemTitle=&amp;amp;orderBy=INQUERY_COUNT&amp;amp;selectCodeLang=ALL&amp;amp;select-1=5&amp;amp;pageSize=10&amp;amp;pageIndex=2&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&amp;amp;problemLevel=4&amp;amp;problemLevel=5&amp;amp;contestProbId=AV14vXUqAGMCFAYD&amp;amp;categoryId=AV14vXUqAGMCFAYD&amp;amp;categoryType=CODE&amp;amp;problemTitle=&amp;amp;orderBy=INQUERY_COUNT&amp;amp;selectCodeLang=ALL&amp;amp;select-1=5&amp;amp;pageSize=10&amp;amp;pageIndex=2&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1710616659893&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;SW Expert Academy&quot; data-og-description=&quot;SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!&quot; data-og-host=&quot;swexpertacademy.com&quot; data-og-source-url=&quot;https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&amp;amp;problemLevel=4&amp;amp;problemLevel=5&amp;amp;contestProbId=AV14vXUqAGMCFAYD&amp;amp;categoryId=AV14vXUqAGMCFAYD&amp;amp;categoryType=CODE&amp;amp;problemTitle=&amp;amp;orderBy=INQUERY_COUNT&amp;amp;selectCodeLang=ALL&amp;amp;select-1=5&amp;amp;pageSize=10&amp;amp;pageIndex=2&quot; data-og-url=&quot;https://swexpertacademy.com&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dCGi6p/hyVAzZxQ9p/M5tSdu3lS34HA12cgW3mPK/img.png?width=600&amp;amp;height=315&amp;amp;face=0_0_600_315,https://scrap.kakaocdn.net/dn/lIgcP/hyVBIIuhCy/4ANkQOjTAM042sjGsgsxeK/img.png?width=3378&amp;amp;height=3378&amp;amp;face=0_0_3378_3378,https://scrap.kakaocdn.net/dn/dTByve/hyVAH4lae8/jRb0IKNWD7RgS3k57PfRl1/img.png?width=393&amp;amp;height=486&amp;amp;face=0_0_393_486&quot;&gt;&lt;a href=&quot;https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&amp;amp;problemLevel=4&amp;amp;problemLevel=5&amp;amp;contestProbId=AV14vXUqAGMCFAYD&amp;amp;categoryId=AV14vXUqAGMCFAYD&amp;amp;categoryType=CODE&amp;amp;problemTitle=&amp;amp;orderBy=INQUERY_COUNT&amp;amp;selectCodeLang=ALL&amp;amp;select-1=5&amp;amp;pageSize=10&amp;amp;pageIndex=2&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&amp;amp;problemLevel=4&amp;amp;problemLevel=5&amp;amp;contestProbId=AV14vXUqAGMCFAYD&amp;amp;categoryId=AV14vXUqAGMCFAYD&amp;amp;categoryType=CODE&amp;amp;problemTitle=&amp;amp;orderBy=INQUERY_COUNT&amp;amp;selectCodeLang=ALL&amp;amp;select-1=5&amp;amp;pageSize=10&amp;amp;pageIndex=2&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dCGi6p/hyVAzZxQ9p/M5tSdu3lS34HA12cgW3mPK/img.png?width=600&amp;amp;height=315&amp;amp;face=0_0_600_315,https://scrap.kakaocdn.net/dn/lIgcP/hyVBIIuhCy/4ANkQOjTAM042sjGsgsxeK/img.png?width=3378&amp;amp;height=3378&amp;amp;face=0_0_3378_3378,https://scrap.kakaocdn.net/dn/dTByve/hyVAH4lae8/jRb0IKNWD7RgS3k57PfRl1/img.png?width=393&amp;amp;height=486&amp;amp;face=0_0_393_486');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;SW Expert Academy&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;swexpertacademy.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1710617542215&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 1226. [S/W 문제해결 기본] 7일차 - 미로1
from collections import deque

dx, dy = [0,0,-1,1], [1,-1,0,0]
def bfs(x, y, end_x, end_y):
    q = deque()
    q.append((x, y))
    visited[x][y] = 1
    while q:
        x, y = q.popleft()
        if x == end_x and y == end_y:
            return 1            

        for i in range(4):
            nx = x + dx[i]
            ny = y + dy[i]
            if 0&amp;lt;=nx&amp;lt;16 and 0&amp;lt;=ny&amp;lt;16 and not visited[nx][ny] and graph[nx][ny] != 1:
                visited[nx][ny] = 1
                q.append((nx, ny))
    return 0
T = 10
for _ in range(1, T+1):
    tc = int(input())
    graph = [list(map(int, input())) for _ in range(16)]
    visited = [[0]*16 for _ in range(16)]

    start_x, start_y = 0, 0
    end_x, end_y = 0, 0

    for i in range(16):
        for j in range(16):
            if graph[i][j] == 2:
                start_x = i
                start_y = j
            elif graph[i][j] == 3:
                end_x = i
                end_y = j
    answer = bfs(start_x, start_y, end_x, end_y)
    print(&quot;#{} {}&quot;.format(tc, answer))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;정말 기본적인 BFS문제이다. 단순히 x, y좌표를 찾았을 때 1을 리턴, 찾지 못했으면 0을 리턴해주면 된다.&lt;/span&gt;&lt;/p&gt;</description>
      <category> ️ Algorithm/⏹️ SW Expert Academy [SWEA]</category>
      <category>1226</category>
      <category>SWEA</category>
      <category>알고리즘</category>
      <category>코딩테스트</category>
      <author>Dbswnstjd</author>
      <guid isPermaLink="true">https://dev-wnstjd.tistory.com/509</guid>
      <comments>https://dev-wnstjd.tistory.com/509#entry509comment</comments>
      <pubDate>Sat, 30 Mar 2024 13:05:00 +0900</pubDate>
    </item>
    <item>
      <title>  [CS면접] 웹 면접 질문 [19] [Java]</title>
      <link>https://dev-wnstjd.tistory.com/520</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;1. String, Stringbuffer, Stringbuilder&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;String&lt;/b&gt;은 불변객체(immutable)한 객체이다. 한번 생성된 객체의 값을 변경할 수 없으며 문자열을 조작할 때 마다 새로운 String 객체가 생성되어 메모리를 차지하게 된다. 그러나 불변성 덕분에 thread-safe하고, String객체를 자유롭게 공유할 수 있어 성능상 이점이 있을 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1711642661325&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String a = &quot;abc&quot;;
a = &quot;abcd&quot;;

String b = new String(&quot;abc&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;우리가 생각하기에는 이 코드가 abcd로 변경된다고 생각할 수도 있지만 실제 내부적으로는 abc가 저장되어 있는 메모리를 참조하고 있다가 abcd를 저장하는 새로운 메모리 영역을 참조하게 된다. 그러므로 abc가 저장되어 있는 메모리는 GC에 의해 없어지는 것이다. 그리고 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;위의 a는 String Pool(Heap의 내부)이라는 공간에서 관리되지만 &lt;/span&gt;new 키워드로 생성한 String 객체는 Heap메모리에 할당이 된다. 단순히 문자열의 동등을 비교할 때는 equals()를 사용하도록 해야한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Stringbuffer&lt;/b&gt;는 가변(mutable) 객체이다. 문자열 조작시에 기존 객체의 값을 변경한다. 멀티 스레드환경에서 동기화를 지원하여 thread-safe하다. 하지만 동기화로 인한 오버헤드가 있어 단일 스레드 환경에서는 성능이 저하될 수 있다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Stringbuilder&lt;/b&gt;는 가변(mutable) 객체이다. 문자열 조작시에 기존 객체의 값을 변경한다. 동기화를 지원하지 않아 thread-safe하지 않다. 하지만 동기화에 따른 오버헤드가 없기 때문에 단일 스레드 환경에서는 더 높은 성능을 제공한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;- thread-safe / 오버헤드 ?&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;&quot;&gt;&lt;b&gt;thread-safe&lt;/b&gt;란 멀티스레드 환경에서 스레드가 동시에 해당 코드나 데이터를 접근하더라도 프로그램의 실행 결과가 올바르게 유지되는 것을 의미한다. 스레드 세이프를 달성하기 위해 동기화, 여러 스레드가 공유 리소스에 동시에 접근하는 것을 제한하고 한 번에 하나의 스레드만 해당 리소스를 사용할 수 있도록 해야한다. &lt;/span&gt;&lt;span style=&quot;&quot;&gt;뮤텍스(Mutual Exclusion) / 세마포어 운영체제 수준에서 제공되는 동기화 방법으로, 공유 리소스에 대한 동시접근을 제어하는데 사용된다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;&quot;&gt;&lt;b&gt;오버헤드&lt;/b&gt;란 작업을 수행하는데 필요한 추가적인 자원이나 시간을 의미한다. 오버헤드는 일반적으로 성능저하의 원인이 되며 특정 작업이나 기능을 실행하는데 필요한 부가적인 처리를 가리킨다. 동기화 시 오버헤드는 대기시간이다. 동기화 된 블록 또는 메서드에 한 번에 하나의 스레드만 접근할 수 있기 때문에 다른 스레드들은 대기상태에 놓이게 되고 실행이 지연된다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;&quot;&gt;&lt;b&gt;컨텍스트 스위칭(Context-switching)&lt;/b&gt;은 스레드가 공유 리소스에 접근할 때 마다 컨텍스트 스위칭이 발생할 수 있다. 컨텍스트 스위칭은 실행중인 스레드 / 프로세스의 상태를 저장하고 대기중인 다른 스레드를 불러오는 과정으로 자원사용과 시간 소모가 발생한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;&quot;&gt;2. Java의 접근 제어자&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style=&quot;&quot;&gt;public - 다른 패키지의 모든 클래스에서 접근 가능&lt;/span&gt;&lt;span style=&quot;&quot;&gt;protected - 같은 패키지 내의 다른 클래스와 해당 클래스를 상속받은 자식클래스에서 접근 가능. 일반적으로 오버라이드 할 수 있는 메서드나 변수를 선언할 때 사용&lt;/span&gt;&lt;span style=&quot;&quot;&gt;default - 접근 제어자를 명시하지 않는 경우로 같은 패키지 내의 클래스에서만 접근 가능&lt;/span&gt;&lt;span style=&quot;&quot;&gt;private - 오직 클래스 내부에서만 접근 가능. 객체의 내부 상태를 캡슐화하고 외부로부터 보호할 때 사용&lt;/span&gt;&lt;/p&gt;</description>
      <category>  CS [ComputerScience]/  CS 면접</category>
      <category>string</category>
      <category>stringbufer</category>
      <category>stringbuilder</category>
      <category>개발</category>
      <category>면접</category>
      <category>웹</category>
      <category>자바</category>
      <category>질문</category>
      <author>Dbswnstjd</author>
      <guid isPermaLink="true">https://dev-wnstjd.tistory.com/520</guid>
      <comments>https://dev-wnstjd.tistory.com/520#entry520comment</comments>
      <pubDate>Fri, 29 Mar 2024 01:33:20 +0900</pubDate>
    </item>
    <item>
      <title>⏹️[SW Expert Academy] [Python] [D3] [1244] 최대 상금</title>
      <link>https://dev-wnstjd.tistory.com/502</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;a href=&quot;https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&amp;amp;problemLevel=4&amp;amp;problemLevel=5&amp;amp;contestProbId=AV15Khn6AN0CFAYD&amp;amp;categoryId=AV15Khn6AN0CFAYD&amp;amp;categoryType=CODE&amp;amp;problemTitle=&amp;amp;orderBy=INQUERY_COUNT&amp;amp;selectCodeLang=ALL&amp;amp;select-1=5&amp;amp;pageSize=10&amp;amp;pageIndex=1&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&amp;amp;problemLevel=4&amp;amp;problemLevel=5&amp;amp;contestProbId=AV15Khn6AN0CFAYD&amp;amp;categoryId=AV15Khn6AN0CFAYD&amp;amp;categoryType=CODE&amp;amp;problemTitle=&amp;amp;orderBy=INQUERY_COUNT&amp;amp;selectCodeLang=ALL&amp;amp;select-1=5&amp;amp;pageSize=10&amp;amp;pageIndex=1&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1710264111279&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;SW Expert Academy&quot; data-og-description=&quot;SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!&quot; data-og-host=&quot;swexpertacademy.com&quot; data-og-source-url=&quot;https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&amp;amp;problemLevel=4&amp;amp;problemLevel=5&amp;amp;contestProbId=AV15Khn6AN0CFAYD&amp;amp;categoryId=AV15Khn6AN0CFAYD&amp;amp;categoryType=CODE&amp;amp;problemTitle=&amp;amp;orderBy=INQUERY_COUNT&amp;amp;selectCodeLang=ALL&amp;amp;select-1=5&amp;amp;pageSize=10&amp;amp;pageIndex=1&quot; data-og-url=&quot;https://swexpertacademy.com&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/eYAvE/hyVxBcQ5xR/2a6DlydqszarwHTDmsucK1/img.png?width=600&amp;amp;height=315&amp;amp;face=0_0_600_315,https://scrap.kakaocdn.net/dn/bcAZSZ/hyVAGp3JjV/DVaGXMSyEKJvVr0KQoALZ1/img.png?width=3378&amp;amp;height=3378&amp;amp;face=0_0_3378_3378,https://scrap.kakaocdn.net/dn/dimvI3/hyVxudIIed/rshZKmMMtNTzh1AHty3lW1/img.png?width=393&amp;amp;height=486&amp;amp;face=0_0_393_486&quot;&gt;&lt;a href=&quot;https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&amp;amp;problemLevel=4&amp;amp;problemLevel=5&amp;amp;contestProbId=AV15Khn6AN0CFAYD&amp;amp;categoryId=AV15Khn6AN0CFAYD&amp;amp;categoryType=CODE&amp;amp;problemTitle=&amp;amp;orderBy=INQUERY_COUNT&amp;amp;selectCodeLang=ALL&amp;amp;select-1=5&amp;amp;pageSize=10&amp;amp;pageIndex=1&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&amp;amp;problemLevel=4&amp;amp;problemLevel=5&amp;amp;contestProbId=AV15Khn6AN0CFAYD&amp;amp;categoryId=AV15Khn6AN0CFAYD&amp;amp;categoryType=CODE&amp;amp;problemTitle=&amp;amp;orderBy=INQUERY_COUNT&amp;amp;selectCodeLang=ALL&amp;amp;select-1=5&amp;amp;pageSize=10&amp;amp;pageIndex=1&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/eYAvE/hyVxBcQ5xR/2a6DlydqszarwHTDmsucK1/img.png?width=600&amp;amp;height=315&amp;amp;face=0_0_600_315,https://scrap.kakaocdn.net/dn/bcAZSZ/hyVAGp3JjV/DVaGXMSyEKJvVr0KQoALZ1/img.png?width=3378&amp;amp;height=3378&amp;amp;face=0_0_3378_3378,https://scrap.kakaocdn.net/dn/dimvI3/hyVxudIIed/rshZKmMMtNTzh1AHty3lW1/img.png?width=393&amp;amp;height=486&amp;amp;face=0_0_393_486');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;SW Expert Academy&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;swexpertacademy.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이 문제는 백트래킹 문제이다. 완전탐색으로 풀게되면 시간초과가 발생한다.&amp;nbsp; DFS를 이용해 탐색하면서 가지치기를 해주면된다. 먼저 모든 경우의 수를 확인해야 하기 때문에 2중 for문을 돌게 된다. 이 때 방문했던 것을 체크하지 않으면 시간초과가 발생한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1710266506801&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 1244. [S/W 문제해결 응용] 2일차 - 최대 상금 
def dfs(n):
    global result
    if n == N:
        result = max(result, int(&quot;&quot;.join(map(str, num))))
        return 
    for i in range(L-1):
        for j in range(i+1, L):
            num[i], num[j] = num[j], num[i]

            check = int(&quot;&quot;.join(map(str, num)))
            if (n, check) not in visited:
                dfs(n+1)
                visited.append((n, check))

            num[j], num[i] = num[i], num[j]

T = int(input())

for test_case in range(1, T + 1):
    st, t = map(str, input().split())
    num, visited = [], []
    N = int(t)
    L = len(st)
    result = 0

    for i in st:
        num.append(i)
    dfs(0)
    print(&quot;#{} {}&quot;.format(test_case, result))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Java 코드&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1710266523500&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package SWEA;

import java.util.Scanner;

public class SW_1244 {
    static String[] arr;
    static int max, chance;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        for(int test_case = 1 ; test_case &amp;lt;= T ; test_case++) {
            arr = sc.next().split(&quot;&quot;);
            chance = sc.nextInt();

            max = 0;

            if(arr.length &amp;lt; chance) {
                chance = arr.length;
            }
            dfs(0, 0);
            System.out.println(&quot;#&quot; + test_case + &quot; &quot; + max);
        }
    }
    static void dfs(int start, int cnt) {
        if(cnt == chance) {
            String result = &quot;&quot;;
            for(String s : arr)
                result += s;
            max = Math.max(max, Integer.parseInt(result));
            return;
        }
        for(int i = start; i &amp;lt; arr.length; i++) {
            for(int j = i + 1; j &amp;lt; arr.length; j++) {
                // swap
                String temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;

                dfs(i, cnt + 1);

                temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }
    }
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category> ️ Algorithm/⏹️ SW Expert Academy [SWEA]</category>
      <category>1244</category>
      <category>Python</category>
      <category>SWEA</category>
      <category>최대 상금</category>
      <category>코딩테스트</category>
      <author>Dbswnstjd</author>
      <guid isPermaLink="true">https://dev-wnstjd.tistory.com/502</guid>
      <comments>https://dev-wnstjd.tistory.com/502#entry502comment</comments>
      <pubDate>Mon, 18 Mar 2024 01:35:24 +0900</pubDate>
    </item>
    <item>
      <title>  [CS면접] 웹 면접 질문 [ 3월 2주차 ]</title>
      <link>https://dev-wnstjd.tistory.com/507</link>
      <description>&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;3월 2주차 내용 정리&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;[3/11 ~ 3/15]&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사실 이번주에는 코테, 자소서, 면접 준비를 하느라 많은 글을 작성하지는 못했다. 이번주에는 &lt;b&gt;운영체제, 자료구조, 알고리즘, 네트워크&lt;/b&gt;에 대해 정리해봤다. 이제 기본적인 CS들은 면접에서 거의 하지 않는 분위기이다. 하지만 이런 지식이 부족하다면 개발자로서 어려움이 많은 것을 명확하다. 이 지식들을 자신의 프로젝트에서 어떻게 활용하였는지 연관지으면 최고의 면접이 될 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>  CS [ComputerScience]/  CS 면접</category>
      <category>CS</category>
      <category>TCP</category>
      <category>udp</category>
      <category>네트워크</category>
      <category>스레드</category>
      <category>스택</category>
      <category>운영체제</category>
      <category>자료구조</category>
      <category>프로세스</category>
      <category>힙</category>
      <author>Dbswnstjd</author>
      <guid isPermaLink="true">https://dev-wnstjd.tistory.com/507</guid>
      <comments>https://dev-wnstjd.tistory.com/507#entry507comment</comments>
      <pubDate>Sat, 16 Mar 2024 21:42:55 +0900</pubDate>
    </item>
    <item>
      <title>⏹️[SW Expert Academy] [Python] [D4] [1210] Ladder1</title>
      <link>https://dev-wnstjd.tistory.com/506</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;문제&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;a href=&quot;https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14ABYKADACFAYh&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14ABYKADACFAYh&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1710432249923&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;SW Expert Academy&quot; data-og-description=&quot;SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!&quot; data-og-host=&quot;swexpertacademy.com&quot; data-og-source-url=&quot;https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14ABYKADACFAYh&quot; data-og-url=&quot;https://swexpertacademy.com&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bVkDLR/hyVAJAFcpF/wbPtKdahM4rZYYghfjmwNk/img.png?width=600&amp;amp;height=315&amp;amp;face=0_0_600_315,https://scrap.kakaocdn.net/dn/oyM5k/hyVxtsJeJC/nPn2hc3cyVk2mxAmuWkKAk/img.png?width=3378&amp;amp;height=3378&amp;amp;face=0_0_3378_3378,https://scrap.kakaocdn.net/dn/buX53S/hyVAHQof5S/oyfo8UKUukl0AmXgYlxSS1/img.png?width=393&amp;amp;height=486&amp;amp;face=0_0_393_486&quot;&gt;&lt;a href=&quot;https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14ABYKADACFAYh&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14ABYKADACFAYh&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bVkDLR/hyVAJAFcpF/wbPtKdahM4rZYYghfjmwNk/img.png?width=600&amp;amp;height=315&amp;amp;face=0_0_600_315,https://scrap.kakaocdn.net/dn/oyM5k/hyVxtsJeJC/nPn2hc3cyVk2mxAmuWkKAk/img.png?width=3378&amp;amp;height=3378&amp;amp;face=0_0_3378_3378,https://scrap.kakaocdn.net/dn/buX53S/hyVAHQof5S/oyfo8UKUukl0AmXgYlxSS1/img.png?width=393&amp;amp;height=486&amp;amp;face=0_0_393_486');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;SW Expert Academy&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;swexpertacademy.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;풀이&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1710432249652&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 1210. [S/W 문제해결 기본] 2일차 - Ladder1 [D4]
for _ in range(1, 11):
    tc = int(input())
    graph = [list(map(int, input().split())) for _ in range(100)]
    visited = [[0]*100 for _ in range(100)]

    start = graph[99].index(2)
    x, y = 99, start

    while x != 0:
        visited[x][y] = 1
        if y - 1 &amp;gt;= 0 and graph[x][y-1] and visited[x][y-1] == 0:
            y -= 1
            continue
        elif y + 1 &amp;lt; 100 and graph[x][y+1] and visited[x][y+1] == 0:
            y += 1
            continue
        else:
            x -= 1
    
    answer = y
    print(&quot;#{} {}&quot;.format(tc, answer))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category> ️ Algorithm/⏹️ SW Expert Academy [SWEA]</category>
      <category>1210</category>
      <category>SWEA</category>
      <category>코딩테스트</category>
      <category>파이썬</category>
      <author>Dbswnstjd</author>
      <guid isPermaLink="true">https://dev-wnstjd.tistory.com/506</guid>
      <comments>https://dev-wnstjd.tistory.com/506#entry506comment</comments>
      <pubDate>Fri, 15 Mar 2024 01:04:43 +0900</pubDate>
    </item>
  </channel>
</rss>