본문 바로가기

전체 글

(265)
백준2980 - 도로와 신호등 https://www.acmicpc.net/problem/2980 2980번: 도로와 신호등 문제 상근이는 트럭을 가지고 긴 일직선 도로를 운전하고 있다. 도로에는 신호등이 설치되어 있다. 상근이는 각 신호등에 대해서 빨간 불이 지속되는 시간과 초록 불이 지속되는 시간을 미리 구 www.acmicpc.net 합성함수를 이용하여 풀어보았다. 신호등에 도착했을 때 신호등의 기본 반복시간(빨간불 + 초록불)으로 나누어서 빨간불의 대기 시간이면 현재 시간에서 빨간불 시간을 빼서 시간에 더하고 출발을 하면된다 //1. 합성함수를 이용하자 const readline = require('readline') let N = 0, L = 0, cnt = 0 const input = [] const rl = readline..
백준14562 - 태권왕 https://www.acmicpc.net/problem/14562 14562번: 태권왕 첫째 줄에 테스트 케이스의 수 C(1 ≤ C ≤ 100)이 주어진다. 둘째 줄부터 C줄에 걸쳐 테스트 케이스별로 현재 점수 S와 T가 공백을 사이에 두고 주어진다. (1 ≤ S < T ≤ 100) www.acmicpc.net 자바스크립트로 처음 풀어본 재귀함수 문제이다. 순수함수로 구현하지 못한 점이 아쉽다. spread연산자를 사용하였다. //1. 비동기로 처리하자 //2. 재귀를 이용하자 //https://youj.tistory.com/17 const readline = require('readline') let ans let cnt = 0 const rl = readline.createInterface({ ou..
백준4470 - 줄번호 https://www.acmicpc.net/problem/4470 4470번: 줄번호 문제 텍스트에서 줄을 입력받은 뒤, 줄 번호를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 줄의 수 N이 주어진다. 둘째 줄부터 N개의 줄에 각 줄의 내용이 주어진다. 각 줄에 있는 글자의 �� www.acmicpc.net 문자열을 이용하여 풀었다. 특이한 점은 `를 이용하여 문자열을 표현했다는 것이다. //1. 문자열을 이용하자 //2. 비동기를 이용하자 const readline = require('readline') const input = [] let cnt = 0 const rl = readline.createInterface({ output: process.stdout, input: process.stdi..
백준17249 - 태보태보 총난타 https://www.acmicpc.net/problem/17249 17249번: 태보태보 총난타 태보(TaeBo)란, 태권도와 복싱을 조합한 운동이다. 복싱의 공격 기술로는 민첩하게 앞주먹을 뻗으면서 가볍게 치는 잽, 옆으로 치는 펀치인 훅이 있다. 선풍적인 인기에 태보 강의를 들으며 태보�� www.acmicpc.net 문자열과 함수형 프로그래밍을 익히기 위해서 선택한 문제다. 먼저 얼굴을 찾고 그 결과를 문자열로 반환하는데 반환한 문자열을 다시 문자로 나누어서 @모양이 있는지 찾는다. 그 결과를 배열로 반환하고 각 배열의 길이를 숫자로 반환한 뒤에 중간에 공백이 있는 문자열로 합친다. //1. 문자열 익히기 //2. 함수형으로 최대한 짜기 //2. 비동기로 동작시키기 const readline = ..
백준11383 - 뚊 https://www.acmicpc.net/problem/11383 11383번: 뚊 입력의 첫 번째 줄에 N, M (1 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄의 각 줄에는 M개의 문자가 주어진다. 다음 N개의 줄의 각 줄에는 2M개의 문자가 주어진다. 모든 문자는 영문 알파벳 대문자 혹�� www.acmicpc.net 클로저를 사용하기 위하여 풀었다. 또한 최대한 고차함수를 이용한 풀이법을 생각하였다. 문제를 해결하는 방법은 앞서 들어온 그림과 나중에 들어온 그림을 나눠서 받은 뒤 저장을 하고 앞서 들어온 그림을 가로로 두 배씩 늘려 저장하여 주어진 두 배 늘린 결과와 같은지 비교한다 //1. 클로저를 이용하자 //2. 비동기로 처리하자 const readline = require('rea..
백준1388 - 바닥 장식 https://www.acmicpc.net/problem/1388 1388번: 바닥 장식 형택이는 건축가이다. 지금 막 형택이는 형택이의 남자 친구 기훈이의 집을 막 완성시켰다. 형택이는 기훈이 방의 바닥 장식을 디자인했고, 이제 몇 개의 나무 판자가 필요한지 궁금해졌다. 나�� www.acmicpc.net javascript를 주 언어로 삼아야 하는데 도대체가 문법을 정확히 숙지를 못해서 쉬운 문제부터 차근차근 풀기 시작했다. 이번에 사용한 개념은 함수를 통한 객체의 정의와 비동기를 활용한 입출력, 문자열 파싱이다. 한가지 주의할 점은 자바스크립트에서 파싱을 할 때 간혹 ''이 들어가는 경우가 있다. 이것만 제외하여 파싱한 배열이 길이를 더해서 문제를 해결하면 쉽게 해결할 수 있다. //1. 객체를 정..
백준2479 - 경로 찾기 https://www.acmicpc.net/problem/2479 2479번: 경로 찾기 길이가 같은 두 개의 이진수 코드 A와 B가 있다고 하자. 이 두 코드 사이의 해밍 거리는 A와 B의 각 비트를 왼쪽부터 오른쪽으로 차례대로 비교할 때 서로 다른 값을 가진 비트의 수이다. 예를 들�� www.acmicpc.net map을 이용하여 bfs로 푼 문제이다. map을 사용하는 이유는 이진코드를 순서대로 번호를 부여하여 관리하기 위함이다. 문자열을 입력을 받아서 모두 서로 비교를 하여 딱 한자리만 다른 경우 인접 행렬로 표시한다. 인접 행렬로 표시할 때는 map으로 구한 결과를 이용하였다. 그런 후 bfs를 이용하여 현재 위치, 경로를 저장한 후 원하는 위치까지 갈 수 있는 경우는 경로를 출력하고 그렇지 ..
백준2109 - 순회강연 https://www.acmicpc.net/problem/2109 2109번: 순회강연 문제 한 저명한 학자에게 n(0≤n≤10,000)개의 대학에서 강연 요청을 해 왔다. 각 대학에서는 d(1≤d≤10,000)일 안에 와서 강연을 해 주면 p(1≤p≤10,000)만큼의 강연료를 지불하겠다고 알려왔다. 각 대 www.acmicpc.net 그리디 알고리즘으로 풀었다. 비용이 큰 순서가 앞에 오고 작은 순서가 뒤로 오도록 정렬한 뒤 적어도 x일에는 끝내야 하니까 x일에서 출발하여 1일까지 하루씩 줄여 나가면서 방문하지 않은 일수를 만나면 그 지점을 방문처리하고 비용을 더해주는 식으로 풀었다. #include #include #include #define MAX 10001 using namespace std;..