반응형

파이썬 문제풀이/구현 19

[파이썬] 백준 3190 뱀

[파이썬] 백준 3190 뱀https://www.acmicpc.net/problem/3190 문제Dummy라는 도스 게임이 있다. 이 게임에는 뱀이 나와서 기어 다니는데 , 사과를 먹으면 뱀 길이가 늘어난다.뱀이 벽 또는 자기 자신의 몸과 부딪히면 게임이 끝이 난다. N x N 정사각 보드 위에서 진행되고 몇몇 칸에 사과가 놓여 있다. 보드 상하좌우 끝에는 벽이 있다.뱀의 처음 시작위치는 맨 위 맨 좌측에 위치하고 처음 길이는 1이다. 뱀은 처음에는 오른쪽으로 향한다. 뱀은 매초 마다 움직이는데 아래의 규칙을 따른다.먼저 뱀은 몸길이를 늘려 머리를 다음칸에 위치시킨다.만약 벽이나 자기 자신의 몸과 부딪히면 게임이 끝난다.만약 이동한 칸에 사과가 있다면, 그 칸에 있던 사과가 없어지고 꼬리는 움직이지 않는..

[삼성 sw 파이썬] 4371 항구에 들어오는 배

[삼성 sw 파이썬] 4371 항구에 들어오는 배 문제항구에 배가 들어오 늘 날을 '즐거운 날' 이라고 하자. 이때 각 배들은 항구를 주기적으로 방문한다. 예를 들어 주기가 3인 배는 항구에 1일 차 4일 차 7일 차 등에 방문하게 된다.1일 차부터 기록한 '즐거운 날' 들의 목록이 주어질 때 항구에 들렀던 배의 최소 수를 알아내자.(이때 모든 배는 1일 차에 방문한다.) 입력첫번째 줄에 테스트 케이스두 번째 줄부터는 각 케이스의 첫 번째 즐거운 날의 수 n이 주어진다.각 테스트 케이스의 두 번째 줄부터 n개의 줄에 걸쳐 즐거운 날의 정보가 오름 차순으로 정렬되어 주어진다. 출력각 테스트 케이스마다 항구에 들렸던 배의 최소 수를 출력한다. 풀이각 배들이 들어오는 주기가 존재하면 이때 배의 들어오는 배의 ..

[삼성 sw 파이썬] 3131. 100만 이하의 모든 소수

[삼성 sw 파이썬] 3131. 100만 이하의 모든 소수문제1 이상 100만 이하의 도든 소수를 구하는 프로그램을 작성하시오. 출력1 이상 100만 이하의 소수를 공백을 사이에 두고 한 줄에 모두 출력한다. 풀이1부터 100만 이하의 수를 하나하나씩 소수인지 판별하도록 코드를 작성하면 시간 초과가 나는 문제이다.그렇기에 소수가 나오면 그 소수의 모든 배수를 배제하는 형식으로 코드를 작성하였다.소수가 나올 경우 기록하기 위해서 100만까지 값이 0인 리스트를 만들었고만약 이 리스트의 값이 0 이면 소수 임으로 이 값의 모든 배수를 1로 바꾸면서 제외하여 100만까지의 수를 판별하도록 만들었다.코드ans=[0]*1000001for i in range(2,1000001): if ans[i]==0: ..

[삼성 sw 파이썬] 1945 간단한 소인수분해

[삼성 sw 파이썬] 1945 간단한 소인수분해 문제숫자 N이 주어질 때 N=2^a * 3^b * 5^c *7*d * 11^e의 형태로 표현할 수 있다.이때 a,b,c,d,e를 출력하라 풀이기본적인 구현 문제로 while를 사용하여 2,3,5,7,11 모두 다 하면서 a, b, c, d, e를 구하는 방법이 가장 기본적으로 있다 이때 while부분이 반복되기에 함수로 만들어서 재귀형태로 풀어서 문제를 풀었다.def factors(number,a,count): if number % a != 0: return [count,number] return factors(number//a,a,count+1)number은 현재수이고 a는 나눌수 count 몇 번이나 a로 나누어 버렸는지 카운트하..

[삼성 sw 파이썬] 19185 육십갑자

[삼성 sw 파이썬] 19185 육십갑자문제 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com 육십갑자 라는걸 간다히 말해서 N개의 문자열 s1, s2, s3 …, sN 과 M 개의 문자열  t1, t2, t3, …, tM 있는데 1년에 두문자열의 s1과 t1 합친 문자열을 이름으로 사용한다.자 예를 들어 s={a, b, c} , t={d, e, f, g}라 하면yearSTNAME1adad2bebe3cfcf4agag5bdbd6cece7afaf8bgbg...................위의 표와 같은 형식으로 이름이 나온다. 두 문자열의 리스트와 Q개의 질문이 주어질때 각 질문에서 녀도로부터 만들어지는 이름을 만들면 ..

[삼성sw 파이썬] 15230 알파벳 공부

[삼성 sw 파이썬] 15230 알파벳 공부문제영어 알파벳은 라틴 문자 중에서 영어에 쓰이는 문자 a부터 z까지 총 26자이다. 그 순서는 아래와 같다. abcdefghijklmnopqrstuvwxyz  다음 입력이 주어질때 주어진 입력이 알파벳을 순서대로 보면서 앞에서부터 몇 개의 알파벳이 순서에 맞게 적혀있는지 구하는 프로그램을 작성하라. 입력첫줄에 테스트 케이스의 수 가 주어진다.각 테스트 케이스의 첫 번째 줄에는 길이가 1 이상 26 이하인 문자열이 주어진다. 풀이다른 언어는 모르겠지만 파이썬 같은경우 이문제는 아주 쉽게 풀 수 있다.주어진 알파벳 순서를 리스트에 담고 각 테스트케스와 하나하나씩 비교하면서 앞에서부터 얼마나 일치하는지 비교할 수 있다.코드for t in range(1, T + 1)..

[삼성sw 2001 파이썬] 파리 퇴치

문제N*N배열 안의 숫자는 해당 영역에 존재하는 파리의 개수를 의미한다 이때 M*M 크기의 파리채로 한 번에 내리쳐 최대한 많은 파리를 죽이고자 한다.이때 죽는 파리의 개수를 구하여라.위 예제에서 M=2일경우 최대로 많이 죽는 파리의 수는 49이다.풀이이문제 같은 경우는 제약 조건을 읽어보면 N은 5 이상 15 이하이다 그렇기에 난 for문을 4중으로 사용하여 풀어도 문제없다고 생가하여서  4번의 for문을 사용하여 풀었다.첫 번째 for문은 x의 좌표의 값 두 번째 for문은 y좌표의 값 세 번째 for문은 x 좌표의 값에서 파리채의 영역에 대한 x 좌표의 값 네 번째 for문은 y좌표에 대해서 파리채의 영역에 대한 y좌표의 값이다.그렇게 하여 파리채 내부의 값들을 더하여 비교하였다.코드test=int..

[배준 파이썬]2564 경비원

문제동근이는 무인 경비 회사 경비원으로 항상 대기하고 있다가 호출이 들어오면 그곳으로 가야 한다 이때 블록을 가로질러갈 수 없다 그렇기에 1번 에서 호출이 들어올 경우 x에서 출발하여 1번까가는 거리는 시계방향으로 갈경우 12, 반시계 방향으로 갈 경우 18이 된다.2번에서 호출이 들어올 경우 최단거리는 6이고 3번은 5가 된다 이때 각 상점  사이의 최단 거리의 합을 구하는 프로그램을 작성하시오.입력첫 번째 줄에의 블록의 가로 길이와 세로 길이가 주어진다.둘째 줄에는 상점의 개수가 주어진다.그다음 줄부터는 상점의 위치가 주어지는데  첫번째 수는 1은 북, 2는 남, 3은 서 , 4,는 동쪽을 의미하며 두 번째는 상점의 위치를 의미한다.그리고 마지막 둘은 동근의 위치를 상점 위치과 같이 나타낸다. 출력첫..

[삼성 sw 파이썬] 1940. 가랏! RC카!

[삼성 sw 파이썬] 1940. 가랏! RC카!문제RC카의 이동거리를 계산하려고 한다.command가 0 이면 현재 속도 유지 , 1 이면 가속 , 2 이면 감속 해야 하면1,2, 인경우 가속도의 값이 추가로 주어진다. 만약 현재 속도보다 감속할 속도가 더 클 경우, 속도는 0 이 된다. 입력으로 n개의 command가 주어진다 각 command는 1초를 의미하면 총 n초 동안 이동한 거리를 계산하는 프로그램을 작성하면 된다. 입력첫째줄에 총 테스트 케이스의 개수 T, 다음 줄부터 각 테스트 케이스가 주어진다.테이스 케이스 첫 줄에는 command의 수 n이 주어지고 , 둘째 줄부터 , 매줄마다가 각각의 command 가 주어진다풀이현재속도 와 현재까지 이동한 거리를 저장할 변수를 선언한다.그 후 n초 ..

[삼성sw 파이썬] 1288 새로운 불면증 치료법

[삼성 sw 파이썬] 1288 새로운 불면증 치료법문제양을 1번부터 순서대로 세는 것이 재미없어 N의 배수 번호인 양을 세기로 하였다.즉 처번째에는 N번 양을 세고 두 번째는 2N... K번재에는 KN번 양을 센다.이전에 셌던 번호들의 각 자리수에서 0에서 9까지 모든 숫자를 보는 것은 최소 몇 번 양을 센 시점일까?5N번 양을 세면 0에서 9까지 모든 수를  보게 되므로 호석이는 양 세기를 멈춘다.입력첫줄은 테스트 케이스 T가 주어진다.각 테스트 케이스의 첫 번째 줄에서는 N이 주어진다.출력각 테스트 케이스마다 #테스트 케이스 번호를 출력하고 최소 몇 번 양을 세어야지 0부터 9까지 모든 숫자를 보게 되는지 출력한다.풀이나는 array라는 리스트를 만들어서 각 자릿수를 집어넣고 ans에 0부터 9까지 ..

반응형