분류 전체보기 (24) 썸네일형 리스트형 [Software Maestro] SOMA 워크샵 후기 양평의 블룸비스타 호텔앤컨퍼런스로 워크샵을 갔다왔다! 연수생들의 열정이 장난 아니라는 건 그 전부터 느껴왔지만, 이번에도 새삼 느꼈다. 아이디어톤이 밤 9시에 시작해서 다음날 아침 7시까지 접수 마감이었기 때문에 다들 새벽까지 아이디어 회의하고 PPT를 만드느라 고생을 했는데, 프로젝트 끝난 사람들끼리 모여서 얘기를 나누기 시작하면서 본격적인 네트워크의 장이 열렸다 ㅋㅋ 아마 밤새 연회장에 남아서 잠 안자고 얘기하신 분만 100분은 넘었을 거다. 더 놀라운 건 그러고도 집 가는 버스에서 대부분 안 자고 옆사람이랑 계속 얘기를 했다는 것! 코로나 시기 이전에는 이런 네트워킹 행사가 계속 있어왔다고 하니 올해 이후로도 워크샵은 계속 열릴 듯 한데, 혹시 원하시는 분들께 깨알같은 두 가지 팁을 드리고자 한다... 소마? 소소하게 마무리하기. 23년 4월 5일 수요일. 김종찬 멘토님의 「소프트웨어 엔지니어의 이력 관리」 멘토링을 들었다. 이력서를 어떻게 써야 하는지, 더 자세히는 좋은 이력서를 쓰기 위해 어떤 이력을 쌓아야 하는지에 대한 멘토링이었다. [느낀 점] 1. 프로젝트의 끝은 배포가 유저 피드백과 리팩토링까지. - 현업에서 프라덕트를 아예 밑바닥부터 담당하는 경우는 드물다. 대부분은 "달리는 기차의 바퀴를 갈아끼우기"이다. - 소소하게 마무리하고, 빠르게 개선하자. 2. 팀원들과 사이 좋게 지내자! 생각보다 쉽지 않다. 3. 프로젝트 설계에 공을 들이자. - 기술 선택에 대한 트레이드 오프 고려해보기 - 구체적이고 수치로 확인할 수 있는 목표를 설정하기 (설계할 때 목표치를 어떻게 확인할지도 계획해야 한다) 4. (취업을 고려한다면).. 이진탐색 종이를 접듯이 탐색 범위를 반씩 좁혀나감으로써 $O(logN)$의 시간복잡도 내에 탐색을 마칠 수 있는 사기적인 탐색 방법! 오늘은 이진탐색에 꽂혀서 하루 종일 이진탐색 세 문제를 풀었다. 푼 문제 수는 적지만 많은 깨달음을 얻었기 때문에 오히려 좋아. 오늘 알게 된 사실은 아래와 같다. 1. 이진탐색의 기본적인 틀은 아래와 같다. int start = s, end = e; while (start target) end = mid - 1; else { ans = mid; break; } } 2. 꼭 mid가 target보다 클 때, 작을 때, 같을 때로 나누지 않고, 클 때, 작거나 같을 때와 같이 유연하게 나눌 수 있다. 예를 들어 target보다 작은 수 중에 가장 큰 수를 찾고 싶다면 클 때와 작거나.. enum 싱글턴 패턴을 공부하다가 이넘을 만났다. 귀여니체가 아니라 열거 타입 enum 말이다. 마주친 김에 간단히 알아보려고 한다. 우선, 열거 타입이라는 말이 좀 생소할 것이다. 데이터를 왜 열거해야 하지...? 라는 생각이 들 수도 있겠지만, 그 의미는 조금 이따가 알아보고 기본적인 사용법부터 익혀보자. 1. 기본적인 사용법 환승연애2 출연진의 이름을 저장하고 싶다. 가장 먼저 떠오르는 방법은 클래스에 상수로 저장하는 방법이다. 출연진 리스트를 상수로 초기화하면 List#set() 메소드 등에 의해 요소가 변경될 수 있으므로 출연진들을 한 명씩 상수로 저장해야 한다. 아마 이런 형태가 될 것이다. public class Cast { // 출연자 public static final String 이나연 = "이.. 팩토리 메서드 패턴 오늘은 팩토리 메서드 패턴에 대해 알아봐요. 팩토리 메서드 패턴은 이름만 봐도 어떤 패턴인지 감이 옵니다. 팩토리가 뭐죠? 공장, 즉 무언가를 만드는 곳이에요. 그럼 아마도 팩토리 메서드는 무언가를 만드는 역할을 하는 메서드겠죠? 결론부터 말하자면, new 연산자를 없애기 위해 사용하는 패턴이라고 생각하면 됩니다! 근데 new 연산자가 무슨 잘못이 있어요..? 아직은 잘 모르겠죠? 오늘도 침착맨과 함께 팩토리 패턴에 대해 알아봐요! 2014년경 이병건은 웹툰 작가 이말년이자 다음팟 PD 침착맨으로 활동하고 있었다. 이말년은 작업실에서 태블릿으로 이말년 서유기를 그렸고, 침착맨은 스튜디오에서 하스스톤 게임 방송을 했다. 이 상황을 코드로 옮겨봐요! 이말년은 태블릿이, 침착맨은 방송용 카메라가 필요하고, 두.. 전략 패턴 전략 패턴이란? 알고리즘을 정의하고 캡슐화해서 각각의 알고리즘군을 수정해서 쓸 수 있게 하는 패턴입니다. 뒤로가기 누르지 마세요!! 무슨 소린지 전혀 감이 안 오는게 당연해요! 천천히 알아봅시다. 우리가 침착맨 꾸미기 게임을 만든다고 생각해볼까요? 침펄 꾸미기 게임을 만든다. 옷을 입고(dress), 머리 스타일을 바꾸는(changeHairstyle) 기능을 구현하려고 한다. 위의 기능을 어떻게 구현할 수 있을까요? 침착맨과 주펄 클래스를 따로 만들 수도 있겠지만, 추후에 다른 사람들도 게임에 추가될 것을 고려하여 사람 클래스를 만든 후, 그 서브 클래스로 침착맨과 주펄 클래스를 만들어 보려고 해요. [Person.java] public abstract class Person { String name; .. 클래스, 튜닝의 끝은 순정 프로그래머스 「2023 KAKAO BLIND RECRUITMENT 개인정보 수집 유효기간」 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에서 날짜가 "yyyy.MM.dd" 형식의 문자열로 주어졌고, 나는 이를 int 타입의 날짜로 변환하려고 했다. 그래서 문자열을 날짜로 변환하기 위해 dayToString() 메소드를 만들고, 반대로도 하기 위해 stringToDay() 메소드도 만들었다. 그런데 그냥 LocalDate 타입을 사용해서 문제를 푼 사람이 있더라! 만약에 LocalDate 타입을 사용할 수 있으면 plusMonths(), isBe.. 컴퓨터는 재귀를 사랑해 프로그래머스 「Summer/Winter Coding(~2018) 스티커 모으기(2)」 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 재귀적으로 생각할 때 중요한 것은 꺾이지 않는 마음 $i$번째의 결과와 $(i - 1)$번째 결과와의 관련성이다. 해당 문제의 경우 $i\geq 2$일 때 $i$번째 점수는 1. $(i - 2)$번째 점수 + sticker[$i$](choose case) 또는 2. $(i - 1)$번째 점수(pass case) 중에서 큰 것이었다. 내가 해당 알고리즘을 고려하지 못한 주요한 이유는 기본 예시에서 4번째 점수가 14, 1.. 이전 1 2 3 다음