분류 전체보기

PS/알고리즘 문제풀이

[백준] 14949번 불 끄기(java)

https://www.acmicpc.net/problem/14939 14939번: 불 끄기 전구 100개가 10×10 정사각형 모양으로 늘어서 있다. 전구에 달린 스위치를 누르면 그 전구와 위, 아래, 왼쪽, 오른쪽에 있는 전구의 상태도 바뀐다. 전구 100개의 상태가 주어지면 모든 전구를 끄 www.acmicpc.net 브루트포스로 풀 수 있는 문제이다. 플레 난이도답게 아이디어를 생각하기 어려운 문제였다. 핵심 스위치를 할 때마다 주변과 현재 위치의 상태가 변하게 된다. 즉 컨트롤하기 어렵다는 문제가 있다. 이를 생각해 보면 위쪽의 경우 아래에서 스위치를 하면 컨트롤할 수 있게 된다 -> 맨 아래는 컨트롤불가 따라서 맨 첫 줄의 모든 경우의 수를 생각하고, 마지막 줄 이전까지의 행을 원하는 대로 바꾼..

PS/알고리즘 문제풀이

[백준] 9328번 열쇠(java)

https://www.acmicpc.net/problem/9328 9328번: 열쇠 상근이는 1층 빌딩에 침입해 매우 중요한 문서를 훔쳐오려고 한다. 상근이가 가지고 있는 평면도에는 문서의 위치가 모두 나타나 있다. 빌딩의 문은 모두 잠겨있기 때문에, 문을 열려면 열쇠가 www.acmicpc.net 이번에도 bfs 문제이다. 이와 비슷한 문제를 리트 코드에서도 풀었던 기억이 있는데, 그에 비하면 쉽다고 생각한다. 이유는 최단 거리를 찾는 문제는 아니기에 정보를 공유할 수 있기 때문이다. 핵심 우선 최단거리를 찾는 문제가 아니라 찾을 수 있는 열쇠의 수를 찾는 것이다. 이전에 bfs 특성상 어떤 열쇠를 먼저 먹고, 어떤 식으로 이동해야 가장 빠르게 도달할 수 있는지를 찾는 문제라면 복잡해질 수 있다.(아래..

PS/알고리즘 문제풀이

[백준] 13460번 구슬 탈출2(java)

https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 조금 난도가 있는 bfs 문제이다. 핵심 중요하다고 생각하는 부분은 빨간 구슬과 파란 구슬이 움직일 때 둘의 위치에 따라 먼저 움직이는 순서가 달라져야 한다는 것이다. 만약.. RB가 있을 때 왼쪽으로 움직인다면 R -> B순으로 움직여야 한다. 정답 코드 import java.util.LinkedList; import java.util.Queue..

PS/알고리즘 문제풀이

[프로그래머스] [3차] 방금그곡(java)

https://school.programmers.co.kr/learn/courses/30/lessons/17683 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 옛날에 풀려다가 문제를 이해를 못 해서 넘겼었던 문제이다. 오랜만에 다시 천천히 읽어보니 단순 구현문제였다. 핵심 요즘 문제를 풀 때 주석을 달고 분석을 시작하고 한다. 일단 내가 적은 주석이다. // 우선 문자를 구분해줘야함 C, C# 등등 -> 중요포인트라고 생각되는건 // C, C#, D, D#, E, F, F#, G, G#, A, A#, B 12개가 있음 #은 다른 문자로 대체하느게 좋아보..

활동

[부스트캠프 웹・모바일 8기] 챌린지 수료 후기 + (멤버십 합격)

챌린지가 마무리되었다. 기존에는 일자별로 느낀 점을 작성하였는데, 이번에는 회고느낌으로 한 번에 정리할 예정이다. 매일 하는 이야기지만 시간이 정말 빠르다. 챌린지 초반에는 미션 구현에 대한 압박과 어떤 식으로 학습을 해야 하는지에 대한 어려움이 있었다. 이러한 야생에서 살아남기란 나에게는 정말 쉽지 않았다. 그 과정에서 나는 내가 챌린지를 왜 시작하였는지에 대한 생각을 리마인드 하며 나아갈 수 있었다. 나는 단순하게 미션을 수행하러 온 것이 아닌 나의 성장을 위해 챌린지를 선택하였다. 따라서 학습에 비중을 높이며, CS의 전반적인 이해도를 높이려고 노력하였다. 이 덕분인지 미션자체의 체감 난이도가 조금은 낮아졌다. 또한 자연스럽게 학습을 하는 요령도 생겼다. 야생에서 살아남으려면 스스로 주도적으로 찾아..

프로젝트/ChatUniv

[프로젝트] ChatUniv Comment API, 동적 테스트 #4

이번에는 Comment API에 관한 내용을 정리할 것이다. 우선 기본적으로 Board아래에 comment가 존재한다. 하지만 확장성을 고려하여 chat이나 다른 여러 comment도 생길 수 있다고 생각하여 만들게 되었다. 이로 인해 새로운 동적테스트도 적용해 보았고, 확장성에 대비하여 코드를 작성하였다. Comment @Entity @Inheritance(strategy = InheritanceType.JOINED) @Table(name = "COMMENT") @DiscriminatorColumn public abstract class Comment { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nu..

활동

[부스트캠프 웹・모바일 8기] 챌린지 3주차 후기

벌써 3주가 지나갔다 이제 다음주가 마지막이다. 이번주는 더욱 시간이 빠르게 간 느낌이다. 이틀간격으로 미션을 수행하기에 그런 것 같기도 하다. 11일-12일 차 후기 리펙토링의 중요성 이번주는 미션 한 개를 이틀간 진행하였다. 처음에는 이러한 방식을 듣고 조금은 여유로워지겠다는 생각을 하였다. 하지만 막상 미션을 보니, 난이도가 급 상승한 느낌이었다. 첫날은 제대로 구현도 못했었고, 코드도 엉망이었다. 처음 접해보는 기능이었기에 이러한 어려움이 더 크게 다가왔다. 그래서인지 리뷰에서 많은 것을 배울 수 있었다. 다른 사람의 코드를 보니 미션에서 어떤 것을 요구했는지 이해하고, 많은 것을 배울 수 있었다. 그 덕분에 12일 차에는 어느 정도 동작하게 만들었다. 처음에는 단순하게 동작에만 집중하였는데, 스..

Git

GIt

버전관리 시스템(Version Control System) 이란? 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 불러올 수 있는 시스템을 의미한다. 이를 통해 파일을 잃어버리거나 잘못 고쳤을 때 쉽게 복구가능하다. 로컬 버전 관리 간단히 데이터 베이스를 사용해 파일의 변경 정보를 관리 실수하기 쉽다는 단점 존재 중앙집중식 버전 관리 서버가 별도로 있고 클라이언트가 중앙 서버에서 파일을 받아서 사용하는 방식 중앙 서버에 문제가 발생하면 치명적이라는 단점 존재 분산 버전 관리 단순하게 마지막 스냅샷을 checkout 하지 않고, 저장소를 히스토리와 더불어 전부 복제 서버에 문제가 생기면 복제물로 다시 작업을 시작할 수 있음 Git은 분산 버전 관리 시스템으로 소스 코드 및 파일을 관리하..

PS/알고리즘 문제풀이

[LeetCode] 688 - Knight Probability in Chessboard(java)

https://leetcode.com/problems/knight-probability-in-chessboard/ Knight Probability in Chessboard - LeetCode Can you solve this real interview question? Knight Probability in Chessboard - On an n x n chessboard, a knight starts at the cell (row, column) and attempts to make exactly k moves. The rows and columns are 0-indexed, so the top-left cell is (0, 0), and t leetcode.com 오늘 문제는 dp를 이용한 문제이다...

활동

[부스트캠프 웹・모바일 8기] 챌린지 2주차 후기

시간이 정말 빠르다는 것을 느낀다. 벌써 2주 차가 끝났고, 팀회고까지 마친 이후 회고록 및 후기를 작성하려 한다. 6일 차 후기 조금 더 깊게 생각하고 시작하자. 주제 자체는 스스로에게 자신 있는 미션이었다. 그래서 설계를 재빠르게 마치고 진행을 하였다. 다만 문제가 있었다. 내가 생각한 방식은 기존에 자바에서나 적용할 수 있는 사항이었다. 이를 JS로 구현하기에는 다른 식으로 접근을 했어야 했다. 이를 모르고 삽집을 엄청하다가 다른 캠퍼분의 조언을 듣고 뒤늦게 해결할 수 있었다. 아직까지도 감사하다는 생각을 가지고 있다. 스스로 막혔을 때, 다른 방법도 떠올리는 습관을 가져야 할 것 같다. 7일 차 후기 내가 정말 제대로 했는가? 오늘은 평소보다 일찍 구현을 마쳤고, 학습도 어느 정도 잘했다고 생각하..

javajoha
'분류 전체보기' 카테고리의 글 목록 (4 Page)