자료구조와 알고리즘 36

[SW Expert Academy][D3][C++] 7102 - 준홍이의 카드놀이

https://swexpertacademy.com/main/code/problem/problemDetail.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com (문제를 여기에 적고 싶지만 무단 복제 금지라고 써있다...) 동아리에서 푼 문제! 내 풀이와 다른 동아리 부원의 풀이를 요약해서 작성! 내 풀이 요약: 먼저, 떠올린 것이 더해서 나오는 숫자를 인덱스로 해서 그에 해당하는 값이 나올 때 마다 인덱스(더해서 나온 숫자)에 있는 값을 1씩 증가시켜주면 되겠다고 생각했다. N과 M은 4부터 20사이의 숫자이므로 N+M의 최대값은 40! 따라서, 크기가 40인 int형 배열을 선언해준 뒤 0으로 초기화하고, ..

[SW Expert Academy][D4][C++][Python] 1210 - Ladder1

https://swexpertacademy.com/main/code/problem/problemDetail.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 동아리 CSI (Char String Int) 에서 푼 문제인데 나는 안 풀려서 구글링으로 풀었다. 다른 분은 푸셨는 데 정말 깔끔 그 자체...! 내가 구글링으로 푼 풀이 (Python) 내가 푼 풀이를 요약하면 방향에 따라(왼쪽, 오른쪽, 위의 순서대로) x, y가 다음 움직일 위치(to_x / to_y)를 정하고, 그 위치가 맞는 위치인지 확인하고(if문) 아니면 방향을 바꾸고(continue) 맞으면 움직인다.(x = to_x / y = to_y..

[백준][Python] 13300번: 방 배정

https://www.acmicpc.net/problem/13300 13300번: 방 배정 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 수학여행에 참가하는 학생 수를 나타내는 정수 N(1 ≤ N ≤ 1,000)과 한 방에 배정할 수 있는 최대 인원 수 K(1 < K ≤ 1,000)가 공백으로 분리되어 주어진다. 다음 N 개의 각 줄에는 학생의 성별 S와 학년 Y(1 ≤ Y ≤ 6)가 공백으로 분리되어 주어진다. 성별 S는 0, 1중 하나로서 여학생인 경우에 0, 남학생인 경우에 1로 나타낸다. www.acmicpc.net 문제 정보 초등학교에서는 단체로 2박 3일 수학여행을 가기로 했다. 여러 학년이 같은 장소로 수학여행을 가려고 하는데 1학년부터 6학년까지 학생들이 묵을 방을 배정해야 한다. ..

[백준][Python] 11328번: Strfry

https://www.acmicpc.net/problem/11328 11328번: Strfry 문제 C 언어 프로그래밍에서 문자열(string)은 native한 자료형이 아니다. 사실, 문자열은 그저, 문자열의 끝을 표시하기 위한 말단의 NULL이 사용된, 문자들로 이루어진 문자열일 뿐이다. 하지만 프로그래밍 언어에서 문자열을 다루는 것은 매우 중요하기 때문에, C 표준 라이브러리는 문자열을 다루는 데에 매우 유용한 함수들을 제공하고 있다 : 그들 중에는 strcpy, strcmp, strtol, strtok, strlen, strcat 가 있다. www.acmicpc.net 문제 요약 strfry 함수는 입력된 문자열을 무작위로 재배열하여 새로운 문자열을 만들어내는 함수이다. 두 개의 문자열에 대해, ..

[백준][Python] 10808번: 알파벳 개수

https://www.acmicpc.net/problem/10808 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net 문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각 알파벳이 단어에 몇 개가 포함되어 있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 출력 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. 풀이 1 2 3 4 5 6 7 8 9 str = input() result = [0] * 26 for i in range(str): result[ord(i) -..

[백준][Python] 2439번: 별 찍기 - 2

https://www.acmicpc.net/problem/2439 2439번: 별 찍기 - 2 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 별 찍기 - 1과 같이 풀면 된다! 오른쪽 아래에 삼각형이 있다. 이 때, i와 j의 규칙은 무엇일까? 오른쪽 아래에 있는 삼각형의 빗면에 있는 별들은 모두 i와 j의 합이 같고, 그 보다 오른쪽 아래에 있는 별들은 빗변의 i, j보다 더 큰 값들을 가진다! 123456789N = int(input()) for i in range(N): for j in range(N): if (i+j >= N-1): print("*", end='') el..

[백준][Python] 2438번: 별 찍기 - 1

https://www.acmicpc.net/problem/2438 2438번: 별 찍기 - 1 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 www.acmicpc.net 나도 처음에는 아래와 같이 풀었었다. 물론 상관은 없다. 하지만, 별 찍기 문제가 존재하는 이유는 이중 반복문을 이해시키기 위해서이다. 그리고 아래처럼 풀면 별 찍기 문제가 어려워질수록 풀기가 힘들어진다는 사실! (나도 이렇게 풀다가 어려워서 검색해보다가 알게되었다.) 1 2 3 4 N = int(input()) for i in range(1, N+1): print("*" * i) cs 아래의 풀이가 정석인데, N을 입력 받았을 때 N x N 크기의 정사각형이 있다고 생각하고, i 는 행의 번호, j는..