본문 바로가기

코딩테스트

[소프티어] 징검다리 문제 설명남북으로 흐르는 개울에 동서로 징검다리가 놓여져 있다. 이 징검다리의 돌은 들쑥날쑥하여 높이가 모두 다르다. 철수는 개울의 서쪽에서 동쪽으로 높이가 점점 높은 돌을 밟으면서 개울을 지나가려고 한다. 돌의 높이가 서쪽의 돌부터 동쪽방향으로 주어졌을 때 철수가 밟을 수 있는 돌의 최대 개수는? https://softeer.ai/practice/6293 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 문제 풀이사실 제가 문제를 제대로 이해하지 못한 것인지, test case는 통과하는데 반례가 있는지 정답이 아니라고 나옵니다.문제의 조건에 대해서 좀 더 고민을 해봐야 할 것 같습니다...import sysN = int(input())heights = list(map(int, sy.. 더보기
[소프티어] 성적 평균 문제 설명학생 수와 구간 개수 K를 첫줄에서 입력받습니다.그리고 N명에 대한 점수도 아래 줄에서 입력 받습니다. K번 반복해서 구간을 입력받고, 구간에 해당하는 학생들의 점수 평균을 출력하는 문제입니다. https://softeer.ai/practice/6294 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 문제 풀이출력 형식을 꼭 소수점 둘째자리로 맞춰줘야 통과가 됩니다.아래 코드블럭에 나온 형식대로 사용해도 되고 "{:.2f}".format(average) 이렇게 작성해도 됩니다.import sysN, K = map(int, input().split())scores = list(map(int,input().split()))# score = []#print(scores)for i.. 더보기
[소프티어] A+B 문제 설명A, B를 입력받아 A+B 를 return 하는 문제입니다.첫 줄에서 횟수 T를 입력받고, T번 만큼 반복 진행합니다. https://softeer.ai/practice/6295 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 문제 풀이소프티어 문제는 처음 풀어보았는데, 프로그래머스와는 달리 입력부터 받아야 해서 처음 부분이 조금 어려웠습니다.입력 받는 방식은 크게 2가지가 있는 것 같았습니다.1. input()2. sys.stdin.readline() input()의 경우 여러 줄을 입력받는 반복문 코드에 사용 될 경우 시간 초과가 발생할 수 있다고 하니 반복적으로 입력받아야 하는 문제에서는 두번째 방법을 사용하는게 좋을 것 같습니다. import sysT = int(sy.. 더보기
[프로그래머스] 프로세스 문제 설명운영체제의 역할 중 하나는 컴퓨터 시스템의 자원을 효율적으로 관리하는 것입니다. 이 문제에서는 운영체제가 다음 규칙에 따라 프로세스를 관리할 경우 특정 프로세스가 몇 번째로 실행되는지 알아내면 됩니다. 1. 실행 대기 큐(Queue)에서 대기중인 프로세스 하나를 꺼냅니다. 2. 큐에 대기중인 프로세스 중 우선순위가 더 높은 프로세스가 있다면 방금 꺼낸 프로세스를 다시 큐에 넣습니다. 3. 만약 그런 프로세스가 없다면 방금 꺼낸 프로세스를 실행합니다.   3.1 한 번 실행한 프로세스는 다시 큐에 넣지 않고 그대로 종료됩니다. 예를 들어 프로세스 4개 [A, B, C, D]가 순서대로 실행 대기 큐에 들어있고, 우선순위가 [2, 1, 3, 2]라면 [C, D, A, B] 순으로 실행하게 됩니다. .. 더보기
[프로그래머스] 네트워크 문제 설명네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크의 개수를 return 하도록 solution 함수를 작성하시오. 제한사항 컴퓨터의 개수 n은 1 이상 200 이하인 자연수입니다. 각 컴퓨터는 0부터 n-1인 정수로 표현합니다. i번 컴퓨터와 j번 컴퓨터가 연결되어 있으면 computers[i.. 더보기
[프로그래머스] 게임 맵 최단거리 문제 설명ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다. 지금부터 당신은 한 팀의 팀원이 되어 게임을 진행하려고 합니다. 캐릭터가 움직일 때는 동, 서, 남, 북 방향으로 한 칸씩 이동하며, 게임 맵을 벗어난 길은 갈 수 없습니다. 만약, 상대 팀이 자신의 팀 진영 주위에 벽을 세워두었다면 상대 팀 진영에 도착하지 못할 수도 있습니다. 게임 맵의 상태 maps가 매개변수로 주어질 때, 캐릭터가 상대 팀 진영에 도착하기 위해서 지나가야 하는 칸의 개수의 최솟값을 return 하도록 solution 함수를 완성해주세요. 단, 상대 팀 진영에 도착할 수 없을 때는 -1을 return 해주세요.. 더보기
[프로그래머스] 올바른 괄호 문제 설명괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 제한사항 문자열 s의 길이 : 100,000 이하의 자연수 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스SW개발자.. 더보기
[프로그래머스] 타겟넘버 문제 설명n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스SW개발자를 .. 더보기