본문 바로가기

전체 글93

[백준] 1086번: 박성원 Java 문제 박성원은 이 문제를 풀지 못했다. 서로 다른 정수로 이루어진 집합이 있다. 이 집합의 순열을 합치면 큰 정수 하나를 만들 수 있다. 예를 들어, {5221,40,1,58,9}로 5221401589를 만들 수 있다. 합친수가 정수 K로 나누어 떨어지는 순열을 구하는 프로그램을 작성하시오. 하지만, 박성원은 이 문제를 풀지 못했다. 따라서 박성원은 그냥 랜덤하게 순열 하나를 정답이라고 출력하려고 한다. 이 문제에는 정답이 여러 개 있을 수도 있고, 박성원이 우연히 문제의 정답을 맞출 수도 있다. 박성원이 우연히 정답을 맞출 확률을 분수로 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 집합의 수의 개수 N이 주어진다. N은 15보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 집합에 포함된 수가.. 2022. 5. 27.
[백준] 11779번: 최소비용 구하기 2 Java 문제 n(1≤n≤1,000)개의 도시가 있다. 그리고 한 도시에서 출발하여 다른 도시에 도착하는 m(1≤m≤100,000)개의 버스가 있다. 우리는 A번째 도시에서 B번째 도시까지 가는데 드는 버스 비용을 최소화 시키려고 한다. 그러면 A번째 도시에서 B번째 도시 까지 가는데 드는 최소비용과 경로를 출력하여라. 항상 시작점에서 도착점으로의 경로가 존재한다. 입력 첫째 줄에 도시의 개수 n(1≤n≤1,000)이 주어지고 둘째 줄에는 버스의 개수 m(1≤m≤100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 주어진다. 그리고 그 다음에는 도착지의 도시 번호가 주어지고 또 그 버스 비용이 주어진다. 버스 비용은 0보다 .. 2022. 5. 26.
직관성을 높이는 방법 https://yozm.wishket.com/magazine/detail/1488/?utm_source=stibee&utm_medium=email&utm_campaign=newsletter_yozm&utm_content=contents 직관성을 높이는 세 가지 접근법 | 요즘IT 직관적인 디자인, 직관적인 사용성, 직관적인 콘텐츠... 기획자들은 종종 직관적인 무엇에 대한 고민을 만난다. ‘직관적인 무엇’을 설계하기 위해서는 먼저 직관성에 대해 알아야 한다. 직관 yozm.wishket.com 이 글은 위 글을 읽고 정리한 내용입니다. 1. 직관적이어야 하는 이유 - 빠르게 이해할 수 있고, 사용하는데 발생하는 피로도 감소를 위함 2. 직관적인 설계를 위한 세가지 접근 1) 가용성 휴리스틱 : 설명보다 .. 2022. 5. 26.
[백준] 1086번: 부분합 Java 문제 10,000 이하의 자연수로 이루어진 길이 N짜리 수열이 주어진다. 이 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. 출력 첫째 줄에 구하고자 하는 최소의 길이를 출력한다. 만일 그러한 합을 만드는 것이 불가능하다면 0을 출력하면 된다. https://www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,00.. 2022. 5. 24.
SimpleDateFormat으로 시간, 날짜 형식 지정하기 우리가 평소에 시간을 이야기 할 때에는 5시 20분과 같이 시와 분을 붙여서 이야기 합니다. 하지만 컴퓨터에서 시간을 다루려면 Date형이나 Calendar형을 사용합니다. (사실, 이 클래스들은 불편한 날짜 계산 문제, 일관성 없는 상수, 등 문제가 많은 클래스입니다만... 학습을 위해 여기서는 따로 설명하지 않겠습니다. 실무에서는 LocaleDate, LocaleTime, LocaleDateTime 과 같은 클래스를 사용합니다.) 만약 현재 날짜를 출력한다면 Date date = new Date(); System.out.println(date); 다음과 같이 출력이 됩니다. Sun May 22 21:30:24 KST 2022 어? 이 형식은 우리가 평소에 접하는 형식과 좀 차이가 있습니다. 한국에서는.. 2022. 5. 23.
[프로그래머스] 2019 KAKAO BLIND RECRUITMENT : 무지의 먹방 라이브 Java 무지의 먹방 라이브 * 효율성 테스트에 부분 점수가 있는 문제입니다. 평소 식욕이 왕성한 무지는 자신의 재능을 뽐내고 싶어 졌고 고민 끝에 카카오 TV 라이브로 방송을 하기로 마음먹었다. 그냥 먹방을 하면 다른 방송과 차별성이 없기 때문에 무지는 아래와 같이 독특한 방식을 생각해냈다. 회전판에 먹어야 할 N 개의 음식이 있다. 각 음식에는 1부터 N 까지 번호가 붙어있으며, 각 음식을 섭취하는데 일정 시간이 소요된다. 무지는 다음과 같은 방법으로 음식을 섭취한다. 무지는 1번 음식부터 먹기 시작하며, 회전판은 번호가 증가하는 순서대로 음식을 무지 앞으로 가져다 놓는다. 마지막 번호의 음식을 섭취한 후에는 회전판에 의해 다시 1번 음식이 무지 앞으로 온다. 무지는 음식 하나를 1초 동안 섭취한 후 남은 음.. 2022. 5. 18.
[백준] 1764번: 듣보잡 Java 문제 김진영이 듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. 이름은 띄어쓰기 없이 알파벳 소문자로만 이루어지며, 그 길이는 20 이하이다. N, M은 500,000 이하의 자연수이다. 듣도 못한 사람의 명단에는 중복되는 이름이 없으며, 보도 못한 사람의 명단도 마찬가지이다. 출력 듣보잡의 수와 그 명단을 사전순으로 출력한다. https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도.. 2022. 5. 17.
리액트 useMemo와 useCallback 컴포넌트의 렌더링은 함수가 실행 될때마다 내부에 선언되어있던 변수, 함수가 매번 다시 선언됩니다. 컴포넌트는 state가 변경되거나, 부모에게서 받는 props가 변경되었을 때마다 리랜더링 됩니다. useMemo와 useCallback은 왜 사용할까? 하위 컴포넌트는 props로 넘겨 받는 인자들 중, 하나라도 변경될때마다 리랜더링 되는데, 이 때, 기본적으로 하위 컴포넌트의 모든 함수들이 실행되게 됩니다. 만약 컴포넌트 내 함수의 개수가 많고, 처리해야하는 데이터도 많아진다면 이는 성능 저하로 이루어질 수 있습니다. 이를 해결하는 방법으로 리액트는 useMemo와 useCallback의 사용을 권하고 있습니다. useMemo는 메모리제이션을 사용하여 값을 저장해놓고 useCallback을 사용하여 함수.. 2022. 5. 16.
반응형