목록전체 글 (267)
print("와챠의 개발 기록장")

문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 고른 수열은 오름차순이어야 한다. 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 풀이(JAVA) 전에 푼 코드가 계속 생각나서 이번 코드를 풀어내기 힘들었다. 새 문제를 풀 때는 머리도 좀 리셋하고... 새 마음으로 시작해야지.

문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 풀이(JAVA) 이해하기 어려웠다...^^ 근데 내가 컴퓨터라고 생각하며 실행 순서를 그려가면서 해보니까 좀 알 것 같다.

문제 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 온라인 저지 회원의 수 N이 주어진다. (1 ≤ N ≤ 100,000) 둘째 줄부터 N개의 줄에는 각 회원의 나이와 이름이 공백으로 구분되어 주어진다. 나이는 1보다 크거나 같으며, 200보다 작거나 같은 정수이고, 이름은 알파벳 대소문자로 이루어져 있고, 길이가 100보다 작거나 같은 문자열이다. 입력은 가입한 순서로 주어진다. 출력 첫째 줄부터 총 N개의 줄에 걸쳐 온라인 저지 회원을 나이 순, 나이가 같으면 가입한 순으로 한 줄에 한 명씩 나이와 이름을 공백으로 구분해 출력한다. 풀이..

문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 길이가 짧은 것부터 길이가 같으면 사전 순으로 입력 첫째 줄에 단어의 개수 N이 주어진다. (1≤N≤20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. 출력 조건에 따라 정렬하여 단어들을 출력한다. 단, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력한다. 풀이(JAVA)

Composite Pattern Composite 패턴은 디렉터리와 파일의 관계처럼 재귀적인 구조를 가진 패턴이다. (Composite 패턴의 가장 기본적인 예는 파일과 디렉터리의 관계이다.) 재귀적인 구조란 디렉터리가 그릇 역할도 하고(디렉터리(그릇) 안에 파일(내용물)이 들어갈 수 있음), 내용물 역할도 할 수 있는 것을 말한다(디렉터리(그릇) 안에 디렉터리(내용물)를 넣을 수 있음). 하지만 저 예제는 흔하므로 나는 목표를 만드는 예제를 만들어 보았다. 목표에는 추상적인 목표, 구체적인 목표가 있고, 추상적인 목표는 추상적인 목표와 구체적인 목표를 포함할 수 있게 했다. 파일과 디렉터리로 설명하면 추상적인 목표는 디렉터리고, 구체적인 목표는 파일인 셈이다. DetailedGoal 클래스 = 구체적인..

Strategy Pattern Strategy 패턴은 알고리즘을 쉽게 교체할 수 있는 패턴이다. 예제로는 플레이어가 레벨 1일 때는 쉬운 공격을 하고, 레벨 2일때는 어려운 공격을 하는 코드를 짜 봤다. Strategy 인터페이스 = 레벨에 따라 다른 공격을 구현하게 함 Level 1 클래스 = 레벨 1의 공격인 쉬운 알고리즘 구현 Level 2 클래스 = 레벨 2의 공격인 어려운 알고리즘 구현 (※원래는 attack에 알고리즘이 들어가야 하는데 간단하게 표현하고자 생략) Player 클래스 = 플레이어를 나타내는 클래스 장점 Player 클래스에 구체적인 Strategy 클래스(Level 1, Level 2)는 보이지 않는다. Strategy의 일이 필요할 때엔 필드인 strategy에게 위임(◇) 하..

늦은 후기지만... 시험기간이라 늦게 쓸 수밖에 없었다.ㅎ 삼성 오픈소스 컨퍼런스가 온라인으로 열러서 한 번 신청해봤다. 왜냐면 난 오픈소스 알못이니까... 너무 궁금해서 일단 듣고 보자 하는 맘으로 신청했다. 내가 월요일마다 보던 뉴스레터에서 알려줘서 신청할 수 있었다! 그 뉴스레터가 스타트업 위클리인 것 같은데 메일을 지워버려서 확인할 수가 없네 신청 당시 캡처한 사진~~ 신청은 되게 간단했던 것 같다. 신청하니까 이렇게 당일에 문자가 왔다. 영상은 공식 홈페이지에 다시 올려줘서 못 본 사람은 아무 때나 볼 수 있다. >>https://www.soscon.net/Keynote 시작할 때 삼성 리서치 연구소장분이 나오셔서 환영사를 하시는데... 영어로...!!!!!! 하시는 거다. 그래서 시작이 기억에..

Singleton Pattern Singleton 패턴은 인스턴스가 하나만 생성되는 패턴이다. 예제로는 하나뿐인 닌텐도를 언니랑 동생이 같이 사용하는 내용이다. 요즘 닌텐도 스위치는 하나에 여러 계정이 있다는데 이 예제에서는... 언니와 동생이 하나의 계정을 같이 키우고 있다고 치자. 언니를 갖고 싶은 내 바람과 닌텐도를 갖고 싶은 내 바람을 섞어봤다. - : private + : public 밑줄 : static Singleton 패턴의 장점 (인스턴스를 하나만 생성하므로) 인스턴스가 상호간 영향을 주어 생기는 '예상치 못한 버그'를 생각하지 않고 프로그래밍할 수 있다. Singleton 패턴이 뭐하는 패턴인지 책 예제만 보고는 잘 이해가 되지 않았는데, 네이버 지식백과에 적힌 예를 보고 바로 이해가 ..