function solution(arr) {
  if (arr.length === 0 || arr.length === 1) {
    return [-1];
  }
  const result = arr.filter((item) => item !== Math.min(...arr));
  return result;
}

https://school.programmers.co.kr/learn/courses/30/lessons/181929

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

삼항 연산자와 reduce를 이용하여 만들었다.

 

<삼항 연산자 식>

참이 이였을 때 값 if 조건문 else 참이 아니였을 때 값

 

<코드>

from functools import reduce


def multiply(num_list):
    return reduce(lambda x, y: x * y, num_list)


def solution(num_list):
    return 1 if multiply(num_list) < sum(num_list) ** 2 else 0

 

https://www.acmicpc.net/problem/1292

from functools import reduce


def main():
    A, B = map(int, input().split(" "))

    i: int = 1
    nums: list[int] = []
    while True:
        if len(nums) > B:
            break
        nums.extend([i]*i)
        i += 1

    result = reduce(lambda val, acc: acc + val, nums[A-1:B], 0)
    print(result)


if __name__ == "__main__":
    main()

https://www.acmicpc.net/problem/1550

 

1550번: 16진수

첫째 줄에 16진수 수가 주어진다. 이 수의 최대 길이는 6글자이다. 16진수 수는 0~9와 A~F로 이루어져 있고, A~F는 10~15를 뜻한다. 또, 이 수는 음이 아닌 정수이다.

www.acmicpc.net

def main():
    print(int(input(), 16))


if __name__ == "__main__":
    main()

https://www.acmicpc.net/problem/1225

 

1225번: 이상한 곱셈

첫째 줄에 A와 B가 주어진다. 주어지는 두 수는 모두 10,000자리를 넘지 않는 음이 아닌 정수이다. 수가 0인 경우에는 0만 주어지며, 그 외의 경우 수는 0으로 시작하지 않는다.

www.acmicpc.net

def main():
    num1, num2 = input().split()
    print(sum(map(int, list(num1))) * sum(map(int, list(num2))))


if __name__ == "__main__":
    main()

https://www.acmicpc.net/problem/1076

 

1076번: 저항

첫째 줄에 첫 번째 색, 둘째 줄에 두 번째 색, 셋째 줄에 세 번째 색이 주어진다. 위의 표에 있는 색만 입력으로 주어진다.

www.acmicpc.net

def main():
    colors: list[str] = ["black", "brown", "red", "orange",
                         "yellow", "green", "blue", "violet", "grey", "white"]

    input_colors: list[str] = []
    for _ in range(3):
        input_colors.append(input())

    value1: int = colors.index(input_colors[0])
    value2: int = colors.index(input_colors[1])

    mul: int = 10 ** colors.index(input_colors[2])
    result = int(f'{value1}{value2}') * mul
    print(result)


if __name__ == "__main__":
    main()

https://www.acmicpc.net/problem/1735

 

1735번: 분수 합

첫째 줄과 둘째 줄에, 각 분수의 분자와 분모를 뜻하는 두 개의 자연수가 순서대로 주어진다. 입력되는 네 자연수는 모두 30,000 이하이다.

www.acmicpc.net

function gcd(a, b) {
  let tmp = 0;
  if (a < b) {
    tmp = a;
    a = b;
    b = tmp;
  }
  while (b != 0) {
    n = a % b;
    a = b;
    b = n;
  }
  return a;
}

const input = require("fs")
  .readFileSync("ex.txt")
  .toString()
  .trim()
  .split("\n");

const [molecule1, denominator1] = input[0]
  .split(" ")
  .map((item) => parseInt(item));

const [molecule2, denominator2] = input[1]
  .split(" ")
  .map((item) => parseInt(item));

let resultMolecule = molecule1 * denominator2 + molecule2 * denominator1;
let resultDenominator = denominator1 * denominator2;

const gcdValue = gcd(resultMolecule, resultDenominator);
while (true) {
  if (gcdValue === 1) {
    break;
  }
  if (resultDenominator % gcdValue !== 0 || resultMolecule % gcdValue !== 0) {
    break;
  }
  resultMolecule = resultMolecule / gcdValue;
  resultDenominator = resultDenominator / gcdValue;
}

console.log(`${resultMolecule} ${resultDenominator}`);

https://www.acmicpc.net/problem/11047

 

11047번: 동전 0

첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)

www.acmicpc.net

const input = require("fs")
  .readFileSync("/dev/stdin")
  .toString()
  .trim()
  .split("\n");

let [count, price] = input[0].split(" ");
let [firstLine, ...coins] = input;

coins = coins.map((item) => parseInt(item)).sort((a, b) => b - a);

let minCount = 0;
coins.forEach((item) => {
  while (true) {
    if (price - item < 0) {
      break;
    }
    price -= item;
    ++minCount;
  }
});

console.log(minCount);

+ Recent posts