목록전체 글 (41)
메-모해봅시다.

문제 아래 예제와 같이 개를 출력하시오. 입력 없음 출력 개를 출력한다. ★풀어보자 처음엔 단순히 기초 문제 인가 하고 보이는 그대로 출력을 시도하였다. print("|\_/|") print("|q p| /}") print("( 0 )"""\") print("|"^"` |") print("||_/=\\__|") 그리하여 첫 시도에 나온 결과가 이것. 처음에는 컴파일러에 일시적인 에러라고 생각했다. 문제는 문자열들 사이에 있는 큰 따옴표(") 큰 따옴표가 있어 어디까지가 출력할 문자열인지 혼란이 생기는 듯 하다. 이는 역슬래시(\)로 해결이 가능하다. 출력하고자 하는 큰 따옴표 앞에 역슬래시를 붙여 (\") 이렇게 표현하면 큰 따옴표를 그대로 출력할 수 있다. 이는 역슬래시 기호 자체에도 적용되어 역슬래시..

가장 쉽게 떠오를 만한 리버싱의 예시를 생각해 보면 개인적으로는 가장 먼저 등록키(시리얼 키)를 크랙하는 행위가 떠오릅니다. 그런 의미에서 코드엔진 CodeEngn - RCE L05 문제는 가장 내 흥미를 끌었던 문제입니다. 예전에 종종 보였던 스타 시디키 크랙이 떠오르는... 개인적으로 재미있었거나 인상깊었던 문제를 앞으로도 계속 포스팅해 본인의 복습을 위한 기록을 하고자 합니다. 우선, 문제를 풀기 위해 주어진 프로그램을 분석하는게 먼저라고 생각하니 어떤 작동을 하는지 부터 알아보도록 하겠습니다. 기본적인 동작은 알아내었고 프로그램의 대한 정보를 알아내어 보자 위 그림의 하단부의 UPX 0.89.6 ~~~ 라고 써져 있는 것을 볼 수 있는데 이것은 해당 프로그램이 UPX로 패킹이 되어 있다는 것입니다..

★풀어보자 계획 변수를 선언해 그걸 이용해서 두 배열간의 숫자를 바꿀때 한 쪽의 숫자를 백업하고 서로 바꾼 뒤 다시 전달해준다. 실습 출력

문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 출력 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다. ★풀어보자 계획 알파벳이 어느 자리에 있는지 알파벳과 자릿수로 이중 for문을 돌려서 자리를 메긴다. 실습 출력

문제 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 입력 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다. 출력 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다. ★풀어보자 계획 아스키 코드값을 이용해 배열에 쓰인 알파벳들의 개수를 저장한다. 그 후, 가장 큰 갯수를 출력해 준다. 출력

문제 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다. 입력 첫 째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다. 출력 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다. ★풀어보자 계획 이전에 풀었던 문제에 포인터 변수를 사용하기 위해 살짝 수정하였다. 실습 출력

★풀어보자 계획 영단어를 입력받고 일단은 대문자를 소문자로 바꿔준 뒤, 소문자 a가 아스키코드 97에 해당하는 것을 이용하여 알파벳 배열을 만들어 갯수를 저장한다. 실습 출력

문제 영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다. 출력 첫째 줄에 단어의 개수를 출력한다. ★풀어보자 계획 공백은 배열중에 반복문으로 검색하고, 공백의 수에 1을 더하면 단어의 수가 된다. 단, 맨 앞과 맨 뒤에 공백을 찾아 있다면 단어의 수에서 제외한다. 실습 출력