전체 글 801

백준 5217번 쌍의 합 C언어

리뷰C언어가 얼른 익숙해 지면 좋겠다.. 파이썬으로 제출해버렸다 문제 풀이각 루프마다 숫자를 가져온 후 기본 폼을 실행시켜 준다.숫자가 3이상일 경우 1과 NUM - 1을 출력해 주고이후 2부터 첫번째 수가 더 작을 때까지 출력해 준다.  참고 사항FOR문을 마치고 줄바꿈을 1회 해주었다.  정답 코드void q5217();#include int main(void) { q5217(); return 0;}void q5217() { // 백준 5217번 쌍의 합 C언어 int n; scanf("%d", &n); while (n--) { int num; scanf("%d", &num); printf("Pairs for %d:", num); ..

백준 4892번 숫자 맞추기 게임 C언어

리뷰짝수와 홀수를 혼동하여 틀렸다. 문제 풀이n, index를 초기화 해주고 문자열을 저장할 s변수도 포인터로 초기화 해준다.while루프를 실행하고 index를 1올려준다, n값을 받아오고 각 로직을 진행한다.n으로 0이 입력되었으면 루프를 종료한다, n1값이 짝수면 s에 even을, 홀수면 odd를 초기화 해준다.현재 루프의 인덱스와 홀수 짝수 여부, n4 값을 출력해 준다.  참고 사항홀수 짝수 여부는 n1을 기준으로 정해주어야 한다.  정답 코드void q4892();#include int main() { q4892(); return 0;}void q4892() { // 백준 4892번 숫자 맞추기 게임 C언어 int n, index = 0; char *s; while (1) { index +=..

백준 4562번 No Brainer C언어

리뷰C언어 첫 백준 제출 처참 그자체 문제 풀이비교할 값 N을 받아온 후 N의 개수만큼 FOR문을 열어준다.정수 X, Y를 비교해서 X가 더 작을 경우 NO BRAINS 출력, X가 Y보다 크거나 같을 경우 MMM BRAINS 출력  참고 사항PRINTF시 줄바꿈을 해줘야 한다는 것을 깨달았다..  정답 코드void q4562();#include int main() { q4562(); return 0;}void q4562() { // 백준 4562번 No Brainer C언어 int n; scanf("%d", &n); for (int i = 0; i

SWEA 1220번 D3 [S/W 문제해결 기본] 5일차 - Magnetic 파이썬

리뷰스택을 사용하여 풀이하였다.문제 풀이테스트 케이스는 10개로 고정이다.배열의 크기도 100 * 100이나 어쨌든 값을 가져와야 하기에 N으로 받아오고 N * N 크기의 배열을 초기화 해줬다.칼럼을 기준으로 FOR문을 개행하고 스택을 빈 리스트로 초기화 해준다.현재 값이 2일경우, 스택의 마지막 숫자가 1이면 스택에 추가해준다.현재 값이 1일경우, 스택의 마지막 숫자가 2이면 스택에 추가해준다.스택을 참조하여 이전 값이 1뒤에 2가 있을 경우 개수를 1개 추가해준다. (2의 개수를 구해주면 더 좋을 것 같다.) 참고 사항IF문을 사용할때 값이 2일 경우와 ELSE를 사용했는데 그럼 0값도 노출되게 된다. IF문으로 2, 1을 정확히 체크해 줘야 한다. (그래서 첫 제출에 틀렸습니다가 노출되었다 ㅠㅠ) ..

백준 13335번 트럭 파이썬

리뷰덱을 사용하여 풀어주었다. 문제 풀이덱을 임포트 해주고 각 인자를 받아준다.트럭의 무게 리스트를 덱으로 변환해주고 현재 다리 상황을 나타낼 덱도 초기화 해준다.시간을 참조할 변수도 0으로 초기화 해준다.루프가 실행될때 time을 1올려주고 다리 위에 차가 있다면 머무를 시간을 1씩 감소시킨다.만약 다리위의 첫번째 차의 시간이 0이 되었을 경우 덱에서 없애준다.현재 다리 위 차들의 전체 무게를 계산하고 새로운 트럭이 들어와도 된다면 트럭을 다리에 넣어준다.트럭이 모두 다리를 지나갔을 경우 루프를 종료시킨 후 time을 출력해 준다. 참고 사항인덱스 에러가 나지 않도록 적절히 조건을 적용해 주자 정답 코드def q13335(): # 백준 13335번 트럭 파이썬 from collections ..

백준 10799번 쇠막대기 파이썬

리뷰스택을 활용한 문제이다. 문제 풀이문자열을 받아주고 스택을 담을 빈 리스트, 정답을 출력한 result 변수를 0으로 초기화 해준다.각 문자열을 참조하여 현재 문자열이 (일 경우 스택에 추가한다.현재 문자열이 )인 경우 이전 문자열이 (인지 )인지에 따라 다르게 적용해준다.이전 문자열이 (일 경우 스택에서 마지막 인자를 뽑고 스택의 길이만큼 result에 더해준다.이전 문자열이 )일 경우 스택에서 마지막 인자를 뽑고 1만큼 result에 더해준다.result를 출력해 준다. 참고 사항) 이전 문자열이 (인 경우는 레이저를 발사하는 경우다. 즉, (를 하나 뽑고 스택의 길이만큼 더해주면 된다.) 이전 문자열이 )인 경우는 막대기의 끝인 경우다. 즉, (를 하나 뽑고 1만큼 더해주면 된다. 정답 코드de..

백준 1550번 16진수 파이썬

리뷰딕셔너리를 활용해 풀었다. 문제 풀이입력받을 16진수를 문자열로 받아와 주고 16진수에 해당하는 키와 값을 딕셔너리로 저장해 준다.결과값을 나타낼 변수 result와 각 자릿수에 곱해줄 변수 p를 각각 0, 1로 초기화 해준다.문자열을 뒤집은 후 각 값에 해당하는 value값과 p를 곱해준 후 result에 더해준다.result를 출력해 준다.  참고 사항for문을 돌때마다 p에 16을 곱해줘야 각 자릿수에 해당하는 값을 올바르게 구할 수 있다.  정답 코드def q1550(): # 백준 1550번 16진수 파이썬 s = input() dic = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, ..

백준 17413번 단어 뒤집기 2 파이썬

리뷰띄어쓰기에 대한 내용을 제대로 읽지 않아 두번 실패했다 ㅠㅠ 문제 풀이문자열을 받아오고 슬라이싱 기준이 될 인덱스와 빈 리스트, 태그 여부를 나타낼 변수를 초기화 해준다.문자열을 받아와 태그가 시작되면 이전까지의 문자를 리스트에 보내주고 인덱스 최신화, 태그를 True처리 해준다.태그가 종료되면 태그 내의 내용을 리스트에 전달하고 인덱스 최신화, 태그를 False처리 해준다.띄어쓰기를 만나면 띄어쓰기 + 현재까지의 문자열을 리스트에 전달해주고 인덱스를 최신화 해준다.for문이 끝나면 마지막으로 남은 문자열을 리스트에 전달해 준다.result를 빈 문자열로 초기화 해주고 리스트 내 요소들을 뒤집어 result에 추가해 준다. 참고 사항태그가 시작되었을때 띄어쓰기가 확인되어도 리스트에 전달해 주면 안된다..

백준 2167번 2차원 배열의 합 파이썬

리뷰for문과 2차원 배열로 문제를 풀이했다. 통과는 했으나 시간이 많이 걸려서 최적화가 필요해 보인다. 문제 풀이2차원 배열을 받아온다.k와 합을 구할 범위를 각각 가져온 후 행과 열을 돌며 슬라이싱을 통해 합계를 result에 저장해 준다.각 케이스 마다 result값을 출력해 준다.  참고 사항각 i, j값은 -1씩 해줘야 한다.  정답 코드def q2167(): # 백준 2167번 2차원 배열의 합 파이썬 n, m = map(int, input().split()) lst = [list(map(int, input().split())) for _ in range(n)] k = int(input()) for _ in range(k): i, j, x, y = map..

백준 2455번 지능형 기차 파이썬

리뷰max값을 활용한 문제 문제 풀이현재 탑승중인 승객을 나타낼 변수와 최대 탑승객을 나타낼 변수를 각각 0으로 초기화 해준다.4번에 걸쳐 현재 탑승중인 인원과 매 회 탑승 인원 중 최대값을 최신화 해준다.최대 탑승객을 출력해 준다.  참고 사항없음  정답 코드def q2455(): # 백준 2455번 지능형 기차 파이썬 cur = 0 max_val = 0 for _ in range(4): o, i = map(int, input().split()) cur -= o cur += i max_val = max(max_val, cur) print(max_val)q2455()

백준 2744번 대소문자 바꾸기 파이썬

리뷰ord와 chr이용하기 문제 풀이문자열을 받아온 후 빈 문자열 ns를 초기화 해준다.s의 각 문자를 받아 ord를 통해 정수로 변경해 준 뒤 temp 변수로 받아와 준다.a의 아스키코드는 97 A의 아스키코드는 65로 temp가 97이상일 경우 소문자, 아닐 경우 대문자 이다.temp가 97이상일 경우 32를 빼준 후 chr로 변환해 ns에 더해준다. 97미만일 경우 반대로 32를 더해준다.  참고 사항대문자와 소문자 아스키코드 차이는 32로 고정이다.  정답 코드def q2744(): # 백준 2744번 대소문자 바꾸기 파이썬 s = input() ns = '' for i in s: temp = ord(i) if temp >= 97: ..

백준 3190번 뱀 파이썬

리뷰구현문제는 항상 어렵고 시간이 많이 걸린다.. 문제 풀이뱀의 길이를 늘인 후 줄여줘야 하기에 덱을 사용한다. collections을 import해준다.n값을 받아온 후 n * n크기의 2차원 배열을 만들어 준다. 값은 모두 0으로 초기화 해준다.사과의 위치를 받아준 후 해당 위치의 2차원 배열의 값을 1로 변경해 준다.방향 변환 정보를 받아와 준 후 방향 변환 인덱스를 0으로 초기화 해준다.방향 정보를 동서남북 4가지로 만들어 준 후 방향 인덱스를 0으로 초기화 해준다.뱀 정보를 덱으로 만들어 준 후 초기 좌표인 0, 0을 튜플로 넣어준다.time을 0으로 초기화 해준다.while루프를 실행하고 time을 1 올려준다.뱀이 이동할 다음 좌표를 구해준 후 뱀이 2차원 배열을 벗어나거나 몸에 닿지 않을 ..

백준 1475번 방 번호 파이썬

리뷰딕셔너리를 활용하여 풀었다. 문제 풀이0 ~ 9를 키를 갖는 딕셔너리를 값을 0으로 초기화 해준다.각 딕셔너리에 입력 숫자의 자릿수를 더해준다.6과 9의 경우 뒤집어 사용할 수 있기 때문에 각 키값은 6과 9의 개수를 더한 값을 2로 나누어 반올림 해준다.딕셔너리의 값중 최고값을 출력해 준다. 참고 사항6과 9의 개수 합이 홀수일 경우 2로 나눈 뒤 올림 처리 해줘야 한다.  정답 코드def q1475(): # 백준 1475번 방 번호 파이썬 n = int(input()) dic = {i: 0 for i in range(10)} while n: dic[n % 10] += 1 n //= 10 if dic[6] + dic[9]: dic[6]..

백준 14503번 로봇 청소기 파이썬

리뷰1이 벽이 아니라 청소된 공간으로 이해하여 시간이 꽤 걸렸다. 문제 풀이모든 입력값을 가져오고 방향을 나타낼 리스트를 초기화 해준다.정답을 나타낼 result 변수와 청소가 완료된 상태를 나타낼 배열을 초기화 해준다.현재 위치가 청소되지 않은 상태라면 청소된 상태로 바꾸어 주고 result에 1을 더해준다.움직일 공간이 있는지를 나타낼 변수를 False 상태로 초기화 해준다.방향을 시계 반대 방향으로 90도를 회전하며 해당 방향 앞에 청소 되지 않은 상태인 빈 공간이 있다면 이동한다.4방향 모두 청소 되지 않은 빈 공간이 없다면 후진을 하고, 이동할 수 없다면 루프를 종료한다.result 변수에 저장된 값을 출력한다. 참고 사항방의 가장 북쪽, 가장 남쪽, 가장 서쪽, 가장 동쪽 줄 중 하나 이상에 ..

백준 10808번 알파벳 개수 파이썬

리뷰딕셔너리를 활용하여 풀었다. 브론즈4가 맞는지!? 문제 풀이a~z까지의 키를 갖는 딕셔너리를 값이 0인 상태로 초기화 해준다입력받은 문자열의 단어를 돌며 해당 키값의 값을 1올려준다.딕셔너리의 value를 개행하여 출력해준다. 참고 사항chr을 사용하면 딕셔너리 초기화가 용이하다.  정답 코드def q10808(): # 백준 10808번 알파벳 개수 파이썬 s = input() alpha = {chr(i): 0 for i in range(97, 123)} for i in s: alpha[i] += 1 print(*alpha.values())q10808()

백준 11721번 열 개씩 끊어 출력하기 파이썬

리뷰슬라이싱을 이용해 해결하였다. 문제 풀이문자열 s를 받아오고 s의 길이를 초기화 해준다.s길이를 10으로 나눈 몫 + 1만큼 for문을 개행해 준다.s의 10번째 문자열까지 출력해 주고 s에서 해당 문자열을 제거해 준다. 참고 사항s의 길이가 10의 배수일때 마지막 문자열이 공백으로 노출되어도 통과가 된다.  정답 코드def q11721(): # 백준 11721번 열 개씩 끊어 출력하기 파이썬 s = input() length = len(s) for _ in range(length // 10 + 1): print(s[:10]) s = s[10:]q11721()

백준 1924번 2007년 파이썬

리뷰딕셔너리를 통해 문제를 해결하였다. 문제 풀이각 월에 해당하는 일수를 딕셔너리로 초기화 해준다.각 요일에 해당하는 영문을 딕셔너리로 초기화 해준다.x 월에 해당하는 일수를 y에 더해준다.y를 7로 나눈 나머지를 키로 값는 딕셔너리의 값을 출력해 준다. 참고 사항y에 각 월에 해당하는 일수를 더해줄때 for문의 range는 1부터 x까지 범위로 설정해 줘야 한다. 정답 코드def q1924(): # 백준 1924번 2007년 파이썬 months = {1: 31, 2: 28, 3: 31, 4: 30, 5: 31, 6: 30, 7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31} weeks = {0: 'SUN', 1: 'MON', 2: 'T..

백준 2920번 음계 파이썬

리뷰구현 문제 문제 풀이desc와 asc리스트를 초기화 한다.입력받은 숫자를 리스트로 초기화 한다.입력받은 리스트가 asc와 동일할 경우 ascending 출력, desc와 동일할 경우 descending 출력그 외엔 모두 mixed를 출력해 준다. 참고 사항없음  정답 코드def q2920(): # 백준 2920번 음계 파이썬 lst = list(map(int, input().split())) desc = [8, 7, 6, 5, 4, 3, 2, 1] asc = [1, 2, 3, 4, 5, 6, 7, 8] if lst == asc: print('ascending') elif lst == desc: print('descending') else:..

728x90