CodingTest

· CodingTest
문제문제 설명초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.제한사항prices의 각 가격은 1 이상 10,000 이하인 자연수입니다.prices의 길이는 2 이상 100,000 이하입니다. [나의 풀이]단순 for문을 통해 하나씩 가격이 떨어졌는지 체크 하였다. 마지막은 항상 0이기 때문에 마지막줄에  answer.push(0); 을 통해서 추가해줬다.이중 for문이라 통과 못할 줄 알았는데 통과를 해서 당혹스러움..🎱 코드function solution(prices) { var answer = []; for(let i=0;iNOTE다른 사람들도 비슷하게 풀었다..
· CodingTest
✅ 문제0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. [제한 사항]numbers의 길이는 1 이상 100,000 이하입니다.numbers의 원소는 0 이상 1,000 이하입니다.정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다.문제 풀이 처음 문제를 접했을 때 combination으로 ..
· CodingTest
문제 풀이 과정문제 의도최단거리 -> 다엑스트라 or BFS걷거나 순간이동 모두 1초 소요가 되기 때문에 간선이 비용이 동일하다. 그렇기 때문에 다엑스트라가 아닌 BFS를 사용해서 문제를 풀어야 한다. 예제를 통한 문제 이해 코드let fs = require("fs");let input = fs.readFileSync("/dev/stdin").toString().split("\n");let [start,end] = input[0].split(" ").map(Number);let MAX = 100001;let visited = new Array(MAX).fill(-1);class Queue { constructor() { this.items = {}; this.headIndex = 0; ..
· CodingTest
문제 상근이는 변의 길이가 1인 정사각형 n개를 가지고 있다. 이 정사각형을 이용해서 만들 수 있는 직사각형의 개수는 총 몇 개일까? 두 직사각형 A와 B가 있을 때, A를 이동, 회전시켜서 B를 만들 수 없으면, 두 직사각형은 다르다고 한다. 직사각형을 만들 때, 정사각형을 변형시키거나, 한 정사각형 위에 다른 정사각형을 놓을 수 없다. 또, 직사각형은 정사각형으로 꽉 차있어야 한다. 코드 n = int(input()) # cnt = 직사각형의 개수 cnt = 0 for i in range(1,n+1): for j in range(i, n+1): if i*j
· CodingTest
문제 앨버타의 자동차 번호판은 ABC-0123 (세 글자, 네 숫자)와 같이 두 부분으로 나누어져 있다. 좋은 번호판은 첫 번째 부분의 가치와 두 번째 부분의 가치의 차이가 100을 넘지 않는 번호판이다. 글자로 이루어진 첫 번째 부분의 가치는 글자를 26진법 수처럼 계산한다. (각 자리가 [A..Z]) 예를 들어, "ABC"의 가치는 28 (0×262 + 1×261 + 2×260)이 된다. "ABC-0123"은 |28 - 123| ≤ 100 이기 때문에, 좋은 번호판이다. 자동차 번호판이 주어졌을 때, 좋은 번호판인지 아닌지를 구하는 프로그램을 작성하시오. 코드 N = int(input()) for _ in range(N): l,d = input().split("-") sum = 0 for i in r..
· CodingTest
문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 길이가 짧은 것부터 길이가 같으면 사전 순으로 단, 중복된 단어는 하나만 남기고 제거해야 한다. 코드 # N : 단어의 개수 N = int(input()) str_list = [] for i in range(N): str_list.append(input()) # 중복 제거 str_list = list(set(str_list)) # 그냥 정렬 str_list.sort() # 문자열의 길이는 50이 넘지 않는다. result = [] for i in range(1,51): for str in str_list: if len(str) == i: result.append(str) print(*result..
· CodingTest
문제 상근이의 할머니는 아래 그림과 같이 오래된 다이얼 전화기를 사용한다. 전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. 숫자를 하나 누르면 다이얼이 처음 위치로 돌아가고, 다음 숫자를 누르려면 다이얼을 처음 위치에서 다시 돌려야 한다. 숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다. 상근이의 할머니는 전화 번호를 각 숫자에 해당하는 문자로 외운다. 즉, 어떤 단어를 걸 때, 각 알파벳에 해당하는 숫자를 걸면 된다. 예를 들어, UNUCIC는 868242와 같다. 할머니가 외운 단어가 주어졌을 때, 이 전화를 걸기 위해서 필요한 최소 ..
· CodingTest
문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 코드 N = int(input()) num_list = list(map(int,input().split())) cnt = 0 for n in num_list: if n==1: continue for i in range(2,n+1): if(n%i==0): if n == i: cnt += 1 break print(cnt) NOTE . 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net
· CodingTest
문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 코드 N = int(input()) num_list = [] for _ in range(N): num_list.append(int(input())) num_list.sort() for i in range(N): print(num_list[i]) NOTE list = list() 처음에 이렇게 하거나 list = []를 통해 리스트를 생성하려 했다. => 리스트 변수명을 list 사용 X list[i] = int(input()) 이런 식으로 입력값을 받아 list 의 해당 인덱스에 추가하려고 했다. => 리스트의 크기가 할당이 안되어있기 때문에 append()메서드를 사용하여 리스트에 추가 2750번: 수 정렬하기 첫째 줄에..
· CodingTest
문제 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. 코드 내가 작성한 코드 input_list = list(map(int,input().split())) x = input_list[0] y = input_list[1] w = input_list[2] h = input_list[3] a = w - x b = h - y print(min(x,y,a,b)) 수정할 부분 x,y,w,h=map(int,input().split()) List를 다시 만들지 않고 unpacking을 하여 각각의 변수에 값을 할당해 줄 수 있다. NOTE 파이썬...
unemployedMan
'CodingTest' 카테고리의 글 목록 (2 Page)