문제해결능력

    Python 문자를 아스키코드로 변환, 아스키코드를 문자로 변환

    문자를 인덱스로 하여 문제를 풀때 필요한 소스코드 A는 65부터 시작하고, a는 97로 시작한다. ch = 'A' # 문자 저장 i = ord(ch) # 아스키코드로 저장 j = chr(i) # 문자로 저장 print(i) # 65 출력 print(j) # A 출력

    Python 입력 방법 및 빠른 입/출력, 숫자 2차원 배열, 문자 2차원 배열 입력, 띄어쓰기 없이 2차원 배열 입력

    알고리즘 문제를 풀때 입력의 속도를 빠르게 하는방법 C : scanf 사용 C++ : ios_base :: sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); JAVA : BufferedReader br = new BufferedReader( new InputStreamReader ( System.in ) ); str = br.readline(); 파이썬도 위와 마찬가지로 입/출력 속도를 빠르게하는 문법이 있음 입력 예제 0: 1 정수 한개를 입력 받는 방법 n = int(sys.stdin.readline()) 입력 예제 1: ABCDE 띄어쓰기가 없는 문자열을 1차원 리스트(배열)에 각각 인덱스를 가지도록 입력. member=list(sys.stdin.re..

    1799 백준 비숍 백트래킹

    1799 백준 비숍 백트래킹

    초등부가 왜 이렇게 어렵나...혼자서 dfs 하려다가 말아먹고 , 결국 다른분 코드 참고해서 만들었다.문제는 아래와 같다. 원래 비숍이 놓일때마다 4방향의 대각선을 다 검색하는 방법을 사용하려고 했는데 , 시간초과가 나는 사람이 있다고도 하고무식한것 같아서 방법을 찾다가, 체스판의 대각선을 2부분으로 나눠 푸는 것을 발견했다. * 체스판을 N * N의 격자가 아니라, 2N 개의 대각선으로 바라보는 방법입니다.대각선으로 체스판을 보게 되면 다음 두가지 이점이 있습니다.1. 현재 대각선에서 비숍을 하나만 놓고 다음 대각선으로 이동하면 됩니다. 2. 현재 대각선의 어떤 위치에 비숍을 놓을 수 있는가의 검사는 반대 방향의 대각선에 비숍이 놓여졌는지를 확인하는것으로 O(1)에 수행할 수 있습니다. 이렇게 푸는 방..

    1003 번 문제 피보나치 함수 Dynamic Programming

    1003 번 문제 피보나치 함수 Dynamic Programming

    DP를 공부하는데 처음 해보면 괜찮을 문제같다. 동전 문제를 바로 해보는 건 조금 어려운것 같기도 하고, 아무튼 0을 호출했을때 0을 출력 1을 호출했을때 1을 출력.이것을 계속 단계 별로 저장해 나아가면서, 최상단의 호출한 번호에서 몇번을 출력해 주었는지 알아내면 된다. DP 배열 0 1 2 3 4 5 6 7 8 9 1/0 0/1 1/1 1/2 2/3 3/5 5/8 . . . dp[0] = 1/0; dp[1] = 0/1;2는 0과 1을 더한 것이고, 3은 2와 1의 결과 값을 더한 것이다. 즉 앞에서 부터, 차례대로 결과값을 쌓아가면 된다. 소스 보기 #include int main(){ int dp[41][2]={0}; int n=0,t=0; scanf("%d",&n); dp[0][0]=1; dp[0..

    5704 팬그램 문자열 처리 문제 백준

    5704 팬그램 문자열 처리 문제 백준

    https://www.acmicpc.net/problem/5704팬그램알파벳 배열 25개 짜리 만든 후에 문장에 알파벳이 존재하면 체크해주고체크가 모두 되어있으면 Y 출력 아니면 N 출력 소스 보기 #include #include using namespace std;int main(){ char ar[201],alpa[26]; memset(ar,0,sizeof(ar)); memset(alpa,0,sizeof(alpa)); //배열 초기화 while(1){ cin.getline(ar,201,'\n'); int i=0; if(ar[0]=='*') break; //별이 입력되면 while문 종료 while(1){ alpa[(int)ar[i]-97] = 1; //0부터 25까지 할당된 소문자 배열에 문자가 입력..

    백준 5026 박사 과정 문자열 처리

    백준 5026 박사 과정 문자열 처리

    https://www.acmicpc.net/problem/5026박사과정 5026 개행문자와 1의 자리숫자 이상의 숫자일때 처리해야 하는 부분과strcmp로 글자를 비해 숫자가 아닐때 다른 값을 출력해줘야함 코드 보기 #include #include using namespace std; int main(){ int n=0,sum=0,temp=0; char ar[20]; cin >> n; cin.ignore(); for(int i=0; i

    백준 11024번 더하기 4

    백준 11024번 더하기 4

    https://www.acmicpc.net/problem/11024 더하기 4 에서 https://www.acmicpc.net/problem/11023더하기 3 처럼 EOF 처리만 해주면 '\n' 개행 문자 때문에 테스트 케이스 만큼 반복문을 처리하지 못하고 첫 케이스에서 문자를 다먹어 버린다. 소스보기#include using namespace std;int main(){ int sum=0,t=0,temp=0; char ar[101]; cin >> t; //테스트 케이스 입력 cin.ignore(); //t 입력하면서 버퍼에 입력된 개행문자 제거 while(t--){ cin.getline(ar,100,'\n'); for(int i=0; i

    백준 2309 일곱난쟁이 브루트 포스

    9명 중에 7명의 키의 합이 100이 되는 일곱난쟁이를 찾아내는 문제. 처음에 DFS로 다 찾으려고 했는데, 왜 구현을 못하지... 결국 다른 사람의 푼 문제를 참고하여 풀었음. 일곱 난쟁이 성공 스페셜 저지문제집 시간 제한메모리 제한제출정답맞은 사람정답 비율2 초128 MB53732968235556.407%문제왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다.아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다.아홉 난쟁이의 키가 주어졌을 때, 백설공주를 ..