알고리즘 공부💥 98

[프로그래머스] 2017 팁스타운 / 짝지어 제거하기 / python

짝지어 제거하기 문제 설명 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다. 예를 들어, 문자열 S = baabaa 라면 b aa baa → bb aa → aa → 의 순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다. 제한사항 문자열의 길이 : 1,000,000이하의 자연수 문자열은 모두 소문자로 이루..

[jungol] Beginner_Coder / 수학2 / 1901 / 소수구하기 / python

1901 : 소수 구하기 제한시간1000 ms 메모리제한64 MB 해결횟수701 회 시도횟수1805 회 문제 소수(prime number)란 2이상의 수로써 1과 자기 자신 외에는 약수를 갖지 않는 수를 의미한다. 임의의 M값에 대하여 M에 가장 가까운 소수를 구하는 프로그램을 아래 조건에 따라 작성한다. 입력형식 첫 번째 줄에는 처리해야 할 수의 개수 N을 입력 받는다. (N은 100이하의 정수) 다음 줄에는 처리해야할 수 N개(M1부터 Mn까지)를 한 줄에 한 개씩 차례로 입력 받는다. (Mi 는 1,000,000 이하의 양의 정수) 데이터의 크기가 주어진 범위를 벗어나는 입력은 없다. 출력형식 임의의 값 Mi에 대해 차이가 가장 작은 소수를 구하여 출력한다. 만약 차이가 같은 소수가 여러 개이면 작..

[jungol] Beginner_Coder / 수학2 / 1740 / 소수 / python

1740 : 소수 제한시간1000 ms 메모리제한64 MB 해결횟수502 회 시도횟수1531 회 문제 자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최소값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100이 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최소값은 61이 된다. 입력형식 입력의 첫째 줄에 M이, 둘째 줄에 N이 주어진다. M과 N은 10,000이하의 자연수이며, M은 N보다 같거나 작다. 출력형식 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최소값을 출력한다. 단, M이상 N이하의..

[jungol] Beginner_Coder / 수학2 / 2811 / 소수와 합성수 / python

2811 : 소수와 합성수 제한시간1000 ms 메모리제한64 MB 해결횟수490 회 시도횟수1202 회 문제 소수(prime number)란 1보다 큰 자연수 중 1과 자기 자신 두 개만을 약수로 갖는 수를 말한다. 합성수(composite number)란 1보다 큰 자연수 중 소수가 아닌 수를 말하며 3개 이상의 약수를 갖는다. 1은 소수도 합성수도 아니다. 5개의 자연수를 입력받아 소수인지 합성수인지를 판단하는 프로그램을 작성하시오.​ 입력형식 10억 이하의 자연수 5개가 공백으로 구분되어 주어진다. 출력형식 입력된 순서대로 한 줄에 한 개씩 소수이면 "prime number", 합성수이면 "composite number", 소수도 합성수도 아니면 "number one"이라고 출력한다. 입력 3 1..

[jungol] Beginner_Coder / 수학2 / 1009 / 각 자리수의 역과 합 / python

1009 : 각 자리수의 역과 합(Number Reverse) 제한시간1000 ms 메모리제한32 MB 해결횟수639 회 시도횟수2109 회 문제 양의 정수를 입력받아 역으로 보여주고 각 자리 숫자의 합을 구하는 프로그램을 작성하라. 입력형식 21억 이하의 양의 정수를 입력받는다. 잘못된 데이터는 입력되지 않는다. 하나의 결과가 나온 후에도 계속 새로운 입력을 받다가 0이 입력되면 프로그램을 종료한다. 최대 10개의 양의 정수가 입력될 수 있다. 출력형식 입력받은 수의 역과 각 자리 숫자의 합을 공백으로 구분하여 출력한다. 유효하지않은 "0"은 출력하지 않는다. 입력받은 수의 역도 21억 이하의 정수이다. 입력 453 123456 0 출력 354 12 654321 21 http://www.jungol.c..

[jungol] Beginner_Coder / 도형만들기2 / 2074 / 홀수마방진 / python

제한시간1000 ms 메모리제한64 MB 해결횟수458 회 시도횟수594 회 문제 ​홀수 정사각형의 크기를 입력 받은 후, 가로 세로 대각선의 합이 일정한 마방진을 출력하는 프로그램을 작성하시오. 마방진이란 1부터 N*N까지의 숫자를 한 번씩만 써서 정사각형에 배치하여 가로와 세로, 그리고 대각선의 합이 같도록 하는 것이다. 다음의 순서에 따라 각 위치에 차례대로 값을 넣는다. 1. 첫 번째 숫자인 1을 넣는 위치는 첫 번째 행 가운데이다. 2. 숫자가 N의 배수이면 바로 아래의 행으로 이동하여 다음의 수를 넣고 3. 그렇지 않으면 왼쪽 위로 이동하여 다음의 숫자를 넣는다. 만약 행이 첫 번째를 벗어나면 마지막 행으로 이동하고, 열이 첫 번째를 벗어나면 마지막 열로 이동한다.​ 아래는 N이 3인 경우의 ..

[jungol] Beginner_Coder / 도형만들기2 / 1495 / 대각선 지그재그 / python

1495 : 대각선 지그재그 제한시간1000 ms 메모리제한64 MB 해결횟수645 회 시도횟수1106 회 문제 정사각형의 크기를 입력 받은 후 대각선으로 지그재그 형태인 다음과 같은 형태로 출력하는 프로그램을 작성하시오. (1) 가장 왼쪽 위의 좌표부터 차례로 숫자를 대입시킨다. (2) 대각선을 기준으로 계속 지그재그 모양으로 채워져야 하며 숫자는 1씩 증가하는 형태로 채워나가야 한다. 입력형식 정사각형의 크기 n(1부터 100사이의 정수)을 입력받는다. 출력형식 위에서 언급한 형태의 지그재그 모양의 정사각형의 내부 숫자를 차례로 채운 후의 모습을 출력한다. 숫자 사이는 공백으로 구분한다. 입력 3 출력 1 3 4 2 5 8 6 7 9 입력 2 출력 1 3 2 4 http://www.ju..

[jungol] Beginner_Coder / 도형만들기2 / 1331 / 문자마름모 / python

1331 : 문자마름모 제한시간1000 ms 메모리제한64 MB 해결횟수473 회 시도횟수1401 회 문제 마름모의 한 변의 길이 N을 입력 받아 아래와 같이 문자 마름모를 출력하는 프로그램을 작성하시오. (1) 첫 번째 행의 중앙부터 출발하여 시계 반대 방향으로 'A' 부터 차례대로 채워나간다. ('Z'다음에는 다시 'A'가 된다.) (2) 바깥 부분이 다 채워지면 두 번째 행 중앙부터 다시 같은 작업을 반복한다. (3) 같은 방법으로 마름모를 다 채워지도록 하여 출력한다. 입력형식 마름모의 한변의 길이 N(N의 범위는 100 이하의 양의 정수)을 입력받는다. 출력형식 주어진 형태대로 한 변의 길이가 N인 문자 마름모를 출력한다. 문자 사이는 한 개의 공백으로 구분한다. 주의 : 출력 ..

[jungol] Beginner_Coder / 도형만들기2 / 2071 / 파스칼삼각형 / python

2071 : 파스칼 삼각형 제한시간1000 ms 메모리제한64 MB 해결횟수850 회 시도횟수1519 회 문제 파스칼 삼각형이란 아래 과 같은 자신의 왼쪽 위의 좌표와 오른쪽 위의 좌표 값을 더해서 값을 계속 갱신해 나가는 형태의 삼각형을 말한다. 아래와 같은 파스칼 삼각형의 높이 n과 종류 m을 입력 받은 후 다음과 같은 형태의 파스칼 삼각형을 출력하는 프로그램을 작성하시오. m에 대한 파스칼 삼각형의 모습은 아래 의 모습과 같다. 입력형식 삼각형의 높이n(1부터 30사이의 정수)과 종류m(1부터 3사이의 정수)을 입력받는다. 출력형식 위에서 제시한 형태의 파스칼 삼각형을 입력에서 들어온 높이 n과 종류 m에 맞춰서 출력한다. 숫자는 한 칸의 공백으로 구분하여 출력한다. 입력 5 1 출력 1 1 1 1..

[jungol] Beginner_Coder / 도형만들기2 / 1337 / 달팽이삼각형 / python

1337 : 달팽이삼각형 제한시간1000 ms 메모리제한64 MB 해결횟수667 회 시도횟수1165 회 문제 삼각형의 높이 N을 입력받아서 아래와 같이 숫자 0부터 달팽이 모양으로 차례대로 채워진 삼각형을 출력하는 프로그램을 작성하시오. 왼쪽 위부터 시계방향으로 오른쪽 아래로 이동하면서 숫자 0부터 N개를 채우고 다시 왼쪽으로, 다음은 위쪽으로 반복하면서 채워 나간다. (숫자 9 다음에는 0부터 다시 시작한다.) 입력형식 삼각형의 한변의 길이 N(N의 범위는 100 이하의 양의 정수)을 입력받는다. 출력형식 주어진 형태대로 높이가 N인 달팽이 삼각형을 출력한다. 숫자 사이는 한 개의 공백으로 구분한다. 입력 6 출력 0 4 1 3 5 2 2 0 6 3 1 9 8 7 4 0 9 8 7 6 ..